الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال فيsql

مغلق
بدأه بنت النيل في 23 أبريل 2001 · 7 رد · 840 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

اسعدني جدا الانضمام اليكم...

لدي جدولين بهما بيانات بعضها متطابق والبعض الآخر غير متطابق...اريد ان احصل على البيانات الغير متطابقة بواسطة sql

لقد جربت بالاكسس واستطعت ان احصل على هذه البيانات ولكني لا استطيع الحصول عليهابواسطةsql ...افيدوني في ذلك افادكم الله

مع خاص شكري وتقديري لكل الأعضاء

#2

موضوع متطابق وغير متطابق ما دخلت مزاجي :) يعني اعطي تفصيل الجدولين والرابط بينهما والمراد منهما حتى نتمكن من فائدتك

جديد مدونتي الشخصية http://www.badwi.com

ادعو لنا بظاهر الغيب

MyBooksExchange.jpg

#3

يا اخي الفاضل عندي جدولين بهم بيانات للعاملين يربط بينهم

person_idمن المفروض ان تتطابق جميع بيانات الجدولين حيث ان احدهم من قاعدة بياناتي والاخر من مؤسسة اخري ولكن الواقع انني وجدت اختلاف عند تحليلي للبيانات واستطعت ان احصل على البيانات المشتركة او المتطابقة بين الجدولين ولكني لم استطع الحصول على البيانات الغير متطابقة والتي ترجع إلى وجود خطأ في person_id في جدولي واريد ان احصر هذه البيانات ...اتمنى ان تكون الصورة واضحة الآن...وشكرا جزيلا لإهتمامك

#4

أختي العزيزة.

بفرض ن الملفين file1 & file2 هما الملفين المعنيين. وهناك الحقل personal_id هو الحقل الذي يجب أن يكون متطابق في كلى الملفين. وتريدين أن تجدي قائمة الموظفين الموجودين في الملف الأول، ولكنهم غير موجودين في الملف الثاني. هكذا فهمت المشكلة. ولك الحل

SELECT person_id FROM FILE1 WHERE person_id NOT IN

(SELECT person_id FROM FILE2)

ولكن إنتبهي إذا كان الغرض البحث عن إختلافات في بيانات نفس الموظف بين الملفين، فإن هذه الطريقة لن تعطيك النتيجة المرجوة.

أفيديني إذا كان هو المطلوب

#5

السلام عليكم

بالإمكان اتباع الآتي

select person_id from table1

minus

select person_id from table2

#6

اخي العزيز السني

شكرا جزيلا على مساعدتي ولكني جربت من قبل نفس الامر الذي استخدمته فظهرت هذه الرسالة

too many rows selected

وقد جربت عدة اوامر باستخدامnot inولكنها لم تأتي بالنتيجة

ودائما تظهر نفس الرسالة وعدد الاختلافات في person_id يبلغ حوالي 1000 وانا لا يهمني البيانات الداخلية بخلاف رقم الموظف حيث انني استخدم بيانات مختلفة عن المؤسسة الاخري ولكن يجب ان يتطابق رقم الموظف في الجدولين...

اخي العزيز Omar

لقد جربت الآن الحل الذي كتبته لي والحمد الله نجح

شكرا جزيلا لكم

ولكني فقط اريد ان اعرف لماذا لاينجح معي الامرnot in بعد ان استخدم بعده كلمة select كالمثال التالي

select person_id from person_data

(where person_id not in(select person_id from person_data2

#7

أختي العزيزة بنت النيل

لقد إفترضت (وهذا هو ما كان يجب أن يكون) بأن رقم الموظف هو الPrimary Key، وهو ما يعني أنه لن يكون هناك أرقام مكررة. والذي حدث عندك أن سطر واحد من الملف الأول وجد عدد من السطور المطابقة في الملف الثاني، وهو ما يجعل أوراكل تظهر هذه الرسالة لعدم تمكنها من تحديد أي اسطور تظهر، لأنها يجب أن تظهر سطر واحد لكل سجل.

#8

اخي العزيز /السني

اشكرك بشدة على هذا الإهتمام وعلى هذه المعلومات القيمة والحقيقة انني اكتشفت فعلا بعد تطبيق نصيحة الاخ عمر اخطاء في البيانات التي جاءتني وكنت خلال فترة العمل السابقة كنت افترض الخطأ عندي اناوبالتالي عندما اصلحت البيانات نجح استخدام الامر not in

مع خالص تحياتي لك وللأخ عمر

هذا الموضوع مغلق.

مواضيع مشابهة