31-10-16, 05:56 AM
(آخر تعديل لهذه المشاركة : 31-10-16, 05:59 AM {2} بواسطة اليوم مبتدئة وغداً محترفة.)
(31-10-16, 04:55 AM)أبو عمر كتب : أولاً: تعبك في تلوين الخط للايضاح ومحاولة الشرح اصعب بكثير من اللي مطلوب من الاستعلام يعني امر الاستعلام ابسط من اعداد السؤال
ثانيا لا نحتاج لعمل استعلام في قاعدة البيانات في مثل هذه الحالة الامر بسيط فقط جملة استعلام عند الحاجة
لنأخذ رقم العميل من جدول العملاء مع رقم العميل في جدول الفواتير ونأخذ رقم الفاتور الاساسي مع رقم الفاتورة الفرعي في جدول السندات.
السطر السابق يعتبر استعلام Viewer
لمعرفة سندات العميل فقط سنأخذ رقم العميل من جدول العملاء مع رقم العميل في جدول السندات وسنهمل الفواتير
الان لو استعرض بيانات من الثلاث جداول
PHP كود :
SELECT
FROM (t1 INNER JOIN t2 ON t1.ID = t2.Cid) INNER JOIN t3 ON t2.IDb = t3.Bid;
ولو من الجدول والثاني فقط
PHP كود :
SELECT
FROM t1 INNER JOIN t2 ON t1.ID = t2.Cid;
من الثاني والثالث
PHP كود :
SELECT
FROM t2 INNER JOIN t3 ON t2.IDb = t3.Bid;
من الاول والثالث
PHP كود :
SELECT
FROM t1 INNER JOIN t3 ON t1.ID = t3.Cid;
طبعا في كل جمل Select السابقة لم اذكر اي حقول مختارة لانك ستضع او تختار ما يهمك من الحقول
Cid مفتاح ثانوي للعميل
Bid مفتاح ثانوي للفواتير
الجدول t1 للعملاء\
t2 للفواتير
t3 للسندات
ومن البديهي ان السند الذي يحمل رقم فاتور 0 فانه لن يتبع لاي فاتورة وبالتالي الفاتورة لن تتبع لاي عميل
نصيحة: في المرات القادمة اعمل مثال بسيط للمشكلة افضل من محاولة التوضيح بالكتابة
بالتوفيق
الأستاذ الفاضل أبو عمر أشكر لك تجاوبك معي وبارك الله فيك وفي علمك
للأسف الاستعلام لم يحل مشكلتي
مشكلتي تتلخص في أن السندات التي لا يوجد لها فواتير ولكن لها عملاء
جدول العملاء
الرقم | الاسم
1 | محمد
2 | علي
3 | خالد
جدول الفواتير:
رقم الفاتورة | رقم العميل
1 | 1
2 | 2
3 | 3
4 | 1
جدول السندات
رقم السند | رقم العميل | رقم الفاتورة
1 | 2 | 2
2 | 1 | 0
هذه الجداول باختصار
جميع البيانات في الجداول تظهر إلا في الحالة الأخيرة في جدول السندات لأن رقم الفاتورة (0)
(المفروض تطلع عدد السجلات في الفيو=6 سجلات لكن في هذه الحالة تطلع فقط 5)
