السلام عليكم ورحمة الله وبركاته
اخواني الاعزاء ...
لنفرض ان لدينا جدولين ..
الاول : البنود (اصناف بضائع مثلا) , نسميه table1
الحقول : رقم البند (id) , اسم البند (i_name)
السجلات :
1 بند1
2 بند2
3 بند3
الثاني : حركة بيع وشراء الاصناف (الاستيراد والتصدير) , نسميه table2
الحقول : رقم البند(id) , نوع العملية(بيع او شراء)(type) , الكمية(qua)
السجلات :
1 شراء 1000
1 شراء 500
2 شراء 2500
1 بيع 800
المطلوب : كود SQL يقوم بحساب الكمية للحالية لجميع البنود ...
نلاحظ من السجلات المدخلة أن :
كمية البند رقم 1 (بند1) هي 1000+500-800=700
كمية البند رقم 2 (بند2) هي 2500-0=2500
كمية البند رقم 3 (بند3) هي 0-0=0
كيف يتم ذلك برمجيا بواسطة SQL؟
قد تقول أن عمل جدولين للبيع والشراء أفضل من جدول واحد ... ولكن البرنامج مبني على هذا الاساس ويصعب التعديل خاصة ان البرنامج في مراحله الاخير والتعديل ليس سهل , وانا ذكرت نموذج بسيط يوضح مشكلتي ...
الفكرة اللي عملت عليها هي :
انشأت استعلام(q1) يظهر رقم البند من table2 و مجموع الكمية من table2 بشرط أن النوع شراء
هكذا :
SELECT table2.id,sum(table2.qua) FROM table2 WHERE table2.type="شراء" group by table2.id
وكذلك استعلام q2 كالسابق ولكن النوع بيع
SELECT table2.id,table2.type,sum(table2.qua) FROM table2 WHERE table2.type="بيع" group by table2.id
وبعد ذلك عملت استعلام يقوم بعملية الطرح لكل بند من الاستعلام q1 و q2
هكذا :
SELECT Query1.i_id,(Query1.SumOfqua-Query2.SumOfqua) as t_qua FROM Query1 inner join Query2 on Query1.i_id=Query2.i_id;
هكذا اكون حصلت على المطلوب ((ولكن...))
لن تظهر الا كمية (بند1) ؟؟؟ لماذا ؟؟ السبب هو لان له علمية شراء وبيع .. ام البقية لا .. لانها لها عملية شراء فقط او بدون عملية شراء او بيع...
المطلوب : كيف اجعل جميع البنود تظهر , بحيث ان التي ليس لها اية عملية بيع(شراء فقط) : يظهر مجموع الشراء (او مجموع الشراء - 0=مجموع الشراء) , والتي لم يتم فيها عملية الشراء ولا البيع : يظهر 0 او (0-0=0)
اتمنى ان اجد لديكم الحل .. وآسف على التطويل ولكن لاسهل وأوضح لكم مشكلتي بالتفصيل ...
علمااااااا : باني اريد جميع الاكواد SQL فقط ... وشكرا مقدما
وجزاكم الله خير الدنيا والاخرة


