فى البداية هنا مراجعة الصورة مجدداً
انت كاتب بالصورة مطلوب المجموع 34 بناءاً على رقم الفاتورة
حيث ان رقم الفاتورة لكل ما هو مذكور 100 و 101 و 102 وليس لـ 100 فقط
تابع حتى النهاية لتصل للامر
ان صح المقصود فيجب ان يكون
الجمع لكل من (12+12+12) للفاتورة رقم 100 ليكون المجموع 36
والجمع لكل من (10+10) للفاتورة رقم 101 ليكون المجموع 20
والجمع لكل من (12+12) للفاتورة رقم 102 ليكون المجموع 24
وليعطى الاجمالى النهائي لمجموع الخصم هو (36 + 20 + 24) = 80
واذا كان هذا هو المطلوب صحيحاً فاليك الكود بهذا الشكل
كود :
SELECT Sum(TSum) AS SumTotal FROM (SELECT T1, Sum(T3) As TSum FROM Table1 GROUP BY T1) AS FormSum
طيب هنا كده سياتى بجمع جميع الفواتير وجلب الاجمالى
ماذا اذا كنت اريد اجمالى كل فاتورة على حدي فقط
ليصبح 101 = 36
وليصبح 102 = 20
وليصبح 103 = 24
فكل ما عليك استخدام الاستعلام بهذا الشكل
كود :
SELECT T1, Sum(T3) As TSum FROM Table1 GROUP BY T1
طيب والنقطة الاخيرة وهى ماذا لو كنت اريد عمل جمع
جمع الواتير مثل كود الاول لاجمالى 80 ولكن باخذ قيمة واحدة فقط من كل فاتورة
ليكون كما هو مشير اليه بالصورة 12+10+12 = 34
لاتمام ذلك كل ما عليك استخدام الاستعلام بهذا الشكل
كود :
SELECT Sum(TSum) AS SumTotal FROM (SELECT T1, MIN(T3) As TSum FROM Table1 GROUP BY T1 ORDER BY T1 ASC) AS FormSu
وحتى يعمل الكود الاخير انصحك ان تضع عمود ID
يكون من نوع ترقيم تلقائي وله مفتاح
وتعديل الكود ليكون بهذا الشكل
كود :
SELECT Sum(TSum) AS SumTotal FROM (SELECT T1, MIN(ID) As TSum FROM Table1 GROUP BY T1 ORDER BY ID ASC) AS FormSu
والسبب حتى يقوم باخذ اول قيمة من الفاتورة وليس اصغر مبلغ خصم
الان بات لديك الـ 3 طرق لما تريده واكثر
بات الامر معك فى طريقة استخدامك للاستعلام
تحياتى لك
وتمنياتى لك التوفيق