簡體   English   中英

SUM組的SQL Case語句

[英]SQL Case Statement with SUM Group

我知道一定有像我這樣的問題。 似乎我找不到問題,很抱歉提出這個問題。

以下是我的表格(SalesTransaction)

ID   |SalesID   |Amount   |AmountReceived |OutStanding |Paid
2041  1000       600000    600000          0            1
2042  1000       1500000   2000000        -500000       1
2043  1000       900000    0               900000       0
2047  1002       300000    0               300000       0

在下面使用SQL查詢:

SELECT ID, 
       SalesID, 
       Amount, 
       AmountReceived, 
       OutStanding, 
       Paid, 
       (CASE 
          WHEN Paid = 0 THEN (SELECT SUM(OutStanding) 
                              FROM SalesTransaction 
                              WHERE Paid = 1 ) 
        ELSE 0 END) AS BalanceLastSchedule 
FROM dbo.SalesTransaction 
GROUP BY ID, SalesID, Amount, AmountReceived, OutStanding, Paid

我得到如下結果:

ID   |SalesID   |Amount   |AmountReceived |OutStanding |Paid |BalanceLastSch
2041  1000       600000    600000          0            1     0.00
2042  1000       1500000   2000000        -500000       1     0.00
2043  1000       900000    0               900000       0     -500000
2047  1002       300000    0               300000       0     -500000

我想得到的如下:

ID   |SalesID   |Amount   |AmountReceived |OutStanding |Paid |BalanceLastSch
2041  1000       600000    600000          0            1     0.00
2042  1000       1500000   2000000        -500000       1     0.00
2043  1000       900000    0               900000       0     -500000
2047  1002       300000    0               300000       0     0.00

謝謝,我對此有所幫助。 謝謝。

您得到的答案是錯誤的,因為您尚未加入內部查詢來查找具有SalesId的總和。 試試下面的腳本

SELECT
  SeqNo, 
 SalesID, 
 Amount, 
 AmountReceived, 
 OutStanding, 
 Paid,
 ISNULL((CASE 
          WHEN Paid = 0 THEN (SELECT SUM(OutStanding) 
                              FROM SalesTransaction 
                              WHERE Paid = 1
                                AND SalesId = T.SalesId) 
        ELSE 0 END),0.00) AS BalanceLastSchedule 
  FROM SalesTransaction T;

我只是在游覽內部查詢中添加了以下設置,並刪除了“按條款”組

AND SalesId = T.SalesId

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM