[ad_1]
リチャード・デミング氏に感謝します (
@RichardDeeming
) 2 つのテーブルの合計の解を与えます。
ただし、列をマイナスするテーブルがあるので、ここでそれを解決してみる必要があります。
表 1「エージェント」
名前のお金
アーメド 600
表 2 「エクスポート」
日付なし 名前 金額なし
1 2023 年 1 月 25 日 アヘムド 700
2 2023 年 6 月 30 日 ハリド 800
3 2023 年 7 月 10 日 アハメッド 200
4 2023 年 11 月 30 日 アーメド 100
表 3「支払い」
日付なし 名前 金額なし
1 2023 年 2 月 25 日 アヘムド 300
2 2023 年 7 月 30 日 ハリド 800
3 2023 年 8 月 15 日 アハメド 300
4 2023 年 12 月 25 日 アーメド 400
次のようにテーブルを表示したいです。
|いいえ | 日付 | 名前 | 合計 | エクスポート | お支払い | 残りのお金
|—|————–|——–|——|——–|— ——|————–
| 0 | — | アーメド | 600 | 0 | 0 | 600
| 1 | 2023 年 1 月 25 日 | アーメド | 600 | 700 | 0 | 1300
| 1 | 2023 年 2 月 25 日 | アーメド | 1300 | 0 | 300 | 1000
| 3 | 2023 年 7 月 10 日 | アーメド | 1000 | 200 | 0 | 1200
| 3 | 2023 年 8 月 15 日 | アーメド | 1200 | 0 | 300 | 900
| 4 | 2023 年 11 月 30 日 | アーメド | 900 | 100 | 0 | 1000
| 4 | 2023 年 12 月 25 日 | アーメド | 1000 | 0 | 400 | 600
私が試したこと:
Rechard Demming 氏 2 つの合計テーブルの解決策
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, D AS DATE, N, OD AS MONEY, 0 AS Export, 0 AS Payment, '' AS NT FROM TBL_A UNION ALL SELECT INo As No, D 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, D 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 'ت', CAST(DATE AS DATE) AS 'التاريخ', N AS 'اسم', FORMAT(Money, 'G29') AS 'القديم', FORMAT(Export, 'G29') AS 'الصادر', FORMAT(Payment, 'G29') AS 'المدفوع', SUM((MONEY + Export) - Payment) OVER (PARTITION BY N ORDER BY DATE ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW) As 'المتبقي', NT AS 'ملاحظات' FROM NEWTABLE WHERE N = N'كريمينيا' ORDER BY DATE ASC ;
日付なし 名前 旧輸出支払残金メモ
支払済み手形の残額 送信元の名前 日付 T
No Date Name Total Export Payment RemaindMoney ملاحظات المتبقي المدفوع الصادر القديم الاسم التاريخ ت 0 25-1-2023 Ahmed 600 0 0 600 قديم 1 25-1-2023 Ahmed 0 700 0 1300 صادر 1 25-2-2023 Ahmed 0 0 300 1000 دفع 3 10-7-2023 Ahmed 0 200 0 1200 صادر 3 15-8-2023 Ahmed 0 0 300 900 دفع 4 30-11-2023 Ahmed 0 100 0 1000 صادر 4 25-12-2023 Ahmed 0 0 400 600 دفع
誰かがこのような解決策を得るのを手伝ってくれませんか:
No Date Name Money Export Payment RemaindMoney ملاحظات المتبقي المدفوع الصادر القديم الاسم التاريخ ت 0 25-1-2023 Ahmed 600 0 0 600 قديم 1 25-1-2023 Ahmed 0 700 0 1300 صادر 1 25-2-2023 Ahmed 0 0 300 1000 دفع 3 10-7-2023 Ahmed 0 200 0 1200 صادر 3 15-8-2023 Ahmed 0 0 300 900 دفع 4 30-11-2023 Ahmed 0 100 0 1000 صادر 4 25-12-2023 Ahmed 0 0 400 600 دفع
[ad_2]
コメント