[ad_1]
感谢理查德·戴明先生(
@RichardDeeming
)给我两个表求和的解决方案。
但是,我有一个表,其中减去一列,在这里我必须尝试解决它。
表一“代理”
姓名 钱
艾哈迈德 600
表二“导出”
无日期 姓名 金钱
1 2023 年 1 月 25 日 艾哈迈德 700
2 2023年6月30日 卡立 800
3 10-7-2023 艾哈迈德 200
4 2023 年 11 月 30 日 艾哈迈德 100
表三“付款”
无日期 姓名 金钱
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 | 1300 0 | 300 | 300 1000
| 3 | 2023 年 10 月 7 日 | 艾哈迈德 | 1000 | 1000 200 | 200 0 | 1200
| 3 | 2023 年 8 月 15 日 | 艾哈迈德 | 1200 | 1200 0 | 300 | 300 900
| 4 | 2023 年 11 月 30 日 | 艾哈迈德 | 900 | 900 100 | 100 0 | 1000
| 4 | 2023 年 12 月 25 日 | 艾哈迈德 | 1000 | 1000 0 | 400 | 600
我尝试过的:
Rechard Demming 先生 两个表求和的解决方案
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 'المدفوع', FORMAT(SUM((Money + Export) - Payment) OVER (PARTITION BY N ORDER BY No ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW), 'G29') 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]
コメント