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

الاجمالي SUM من جدولين مربوطين

بدأه visual6.0 في 2 يونيو 2013 · 2 رد · 819 مشاهدة · في قواعد بيانات Microsoft SQL Server
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

استفسار: الاجمالي من جدول آخر

 

عندي استعلام رافض صراحة يشتغل معي بشكل صحيح .

 

لدي جدولين

 

الجدول الأول السيارات CARSBUY

الجدول الثاني المدفوعات Sales

 

اردت معرفة اجمالي مدفوعات كل سيارة ، أنا باكتبها بطريقتين الأولى ربط جدول Sales بـ جدول CARSBUY  كالتالي :

 

 

SELECT CARSBUY.Company, CARSBUY.Car, Sum(Sales.Mony) As Sum_Paid
FROM Sales LEFT OUTER JOIN
CARSBUY ON Sales.Code_Process = CARSBUY.Code_Process
WHERE (Sales.Purpose = 1)
هنا لن يظهر أي سجل ليس له مدفوعات لأنني أضفت الشرط وهو Sales.Purpose أن يساوي 1

الطريقة الثانية

 

وهي عن طريق Select داخلي كالتالي:
SELECT CARSBUY.Company, CARSBUY.Car ,

 Select Sum(Mony) From Sales Where Sales.Purpose = 1) As Sum_Paid
هنا سينفذ الاستعلام بشكل صحيح أي أن كل السجلات ستظهر حتى التي ليس لها سجل في Sales ، ولكن المشكل هنا هو أن السجلات
 الغير موجودة في Sales سيكون الاجمالي Sum لها هو Null ، وأنا أريد الناتج =0 لكي أقوم بعملية حسابية

تم تعديل هذه المشاركة بواسطة visual6.0 في 2 يونيو 2013 في 11:42

#2

إذا كان الإستعلام الأخير صحيح، فقط مشكلتك مع null، استخدم coalesce كي تجعل ناتج sum يعطي صفر إذا كان null هكذا:

 

SELECT
    CARSBUY.Company,
    CARSBUY.Car,
    (Select Coalesce(Sum(Mony), 0) From Sales Where Sales.Purpose = 1) As Sum_Paid

 

coalesce تكافئ هنا:

 

SELECT
    CARSBUY.Company,
    CARSBUY.Car,
    (Select Case When Sum(Mony) Is Null Then 0 Else Sum(Mony) End From Sales Where Sales.Purpose = 1) As Sum_Paid
#3

بارك الله فيك أخي دالة جميلة جدا ولم أجربها لحد الآن نظراً لأنني حليت المشكلة والحمد لله وهي تحويل الحقل الذي ابحث فيه من الجدول الاخر إلى معامل الرابط بين الجدولين

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