[ad_1]
شكرا للسيد ريتشارد ديمينج (
@RichardDeeming
) لتعطيني حلاً لمجموع جدولين.
ومع ذلك، لدي جدول به ناقص عمود، وهنا لا بد لي من محاولة حلها.
الجدول الأول “الوكيل”
اسم المال
احمد 600
الجدول الثاني “التصدير”
لا يوجد اسم التاريخ المال
1 25-1-2023 أحمد 700
2 30-6-2023 خالد 800
3 10-7-2023 أحمد 200
4 30-11-2023 أحمد 100
الجدول الثالث “الدفع”
لا يوجد اسم التاريخ المال
1 25-2-2023 أحمد 300
2 30-7-2023 خالد 800
3 15-8-2023 أحمد 300
4 25-12-2023 أحمد 400
أريد عرض الجدول مثل هذا:
|لا | التاريخ | الاسم | المجموع | تصدير | الدفع | RemaindMoney
|—|————–|——–|——-|——–|— ——|————-
| 0 | — | أحمد | 600 | 0 | 0 | 600
| 1 | ٢٥-١-٢٠٢٣ | أحمد | 600 | 700 | 0 | 1300
| 1 | ٢٥-٢-٢٠٢٣ | أحمد | 1300 | 0 | 300 | 1000
| 3 | ١٠-٧-٢٠٢٣ | أحمد | 1000 | 200 | 0 | 1200
| 3 | ١٥-٨-٢٠٢٣ | أحمد | 1200 | 0 | 300 | 900
| 4 | 30-11-2023 | أحمد | 900 | 100 | 0 | 1000
| 4 | ٢٥-١٢-٢٠٢٣ | أحمد | 1000 | 0 | 400 | 600
ما حاولت:
السيد ريتشارد ديمنج الحل لمجموع جدولين
WITH cteSource As ( SELECT 0 As No, Name, Money FROM TableOne UNION ALL SELECT No, Name, Money FROM TableTwo As T2 WHERE Exists ( SELECT 1 FROM TableOne As T1 WHERE T1.Name = T2.Name ) ) SELECT No, Name, Money, SUM(Money) OVER (PARTITION BY Name ORDER BY No ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) As TotalMoney FROM cteSource ;
الحل 1
شكرا يا شباب، وخاصة
Mr. Rechard Demming
,
لقد قمت بحل مشكلتي هنا هو الكود بعد إضافة جدول وأعمدة أخرى:
WITH NEWTABLE AS ( SELECT 0 As No, CAST(D AS DATE) as DATE, N, FORMAT(OD, 'G29') AS MONEY, FORMAT(0, 'N2') AS Export, FORMAT(0, 'N2') AS Payment, '' AS NT FROM TBL_A UNION ALL SELECT INo As No, CAST(D AS DATE) as DATE, N, 0 AS MONEY, T AS Export, 0 AS Payment, 'صادر' AS NT FROM TBL_E_I As T2 WHERE Exists ( SELECT 1 FROM TBL_A As T1 WHERE T1.N = T2.N ) UNION ALL SELECT No AS No, CAST(D AS DATE) as DATE, N, 0 AS MONEY, 0 AS Export, PD AS Payment, 'دفع' AS NT FROM TBL_A_P AS T3 WHERE Exists ( SELECT 1 FROM TBL_A As T1 WHERE T1.N = T3.N ) ) SELECT No AS 'ت', DATE AS 'التاريخ', N AS 'اسم', Money AS 'القديم', Export AS 'الصادر', Payment AS 'المدفوع', SUM((Money + Export) - Payment) OVER (PARTITION BY N ORDER BY No ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) As 'المتبقي', NT AS 'ملاحظات' FROM NEWTABLE WHERE N = N'AnyName' ORDER BY DATE ASC ;
[ad_2]
コメント