簡體   English   中英

使用共同特征匯總數據(基於行值的 PO 值)

[英]Summarizing data using common characteristics (PO value based on value of lines)

我想編寫一個腳本來查看唯一的 PO 並根據行的狀態確定該 PO 是否已關閉。 此外,我想對每個 PO 的所有行的值求和。 下面的例子顯示了我所追求的。

  • PO 41000934 未關閉,因為其中一行 (2) 仍處於打開狀態
  • PO 41000934 剩余金額為 15,000
  • PO 41000950 已關閉,因為所有行都已關閉
  • PO 41000950 剩余金額為 14,000
采購訂單 關閉 Rem_Amount
41000934 1個 是的 10,000
41000934 2個 5,000
41000950 1個 是的 4000
41000950 2個 是的 8000
41000950 3個 是的 2000

請查看 GROUP BY。 https://www.w3schools.com/sql/sql_groupby.asp

要計算總和,您可以使用 SUM function... 看到“No”小於“Yes”(按字母順序)您可以使用 MIN function,如果有一個或多個行 Closed = ',它將返回 No沒有'每個采購訂單。

SELECT 
  PO, 
  MIN(CLOSED) AS CLOSED, 
  SUM(REM_AMOUNT) AS REMAINING_AMOUNT
FROM TABLE
GROUP BY PO

我們可以在 closed 上使用 FUNCTION MIN() 來查明是否有任何行的值為“No”。 我們使用 function SUM 將剩余金額相加,然后 GROUP BY PO 的值。

 create table poLines( PO int, Line int, Closed char(3), Rem_Amount int, constraint ck_closed check (Closed in ('Yes','No') ) ); insert into poLines values (41000934, 1, 'Yes', 10000), (41000934, 2, 'No', 5000), (41000950, 1, 'Yes', 4000), (41000950, 2, 'Yes', 8000), (41000950, 3, 'Yes', 2000);
 SELECT PO, CASE WHEN MIN(Closed) = 'No' THEN 'open' ELSE 'closed' END status, SUM(Rem_Amount) Remaining FROM poLines GROUP BY PO;
 采購訂單 | 狀態 | 剩余 ------: |:----- |  ------: 41000934 | 打開|  15000 41000950 | 關閉 |  14000

db<> 在這里擺弄

暫無
暫無

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

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