簡體   English   中英

在同一個 Query 中總結 SQL 查詢的結果

[英]Sum the results of SQL query in same Query

我正在嘗試對第三列中兩列的結果求和

SELECT A.Date, A.EmpID,
SUM(CASE WHEN State = 'active' THEN A.MinutesatState ELSE 0 END) AS active, 
SUM(CASE WHEN State = 'idle' THEN A.MinutesatState ELSE 0 END) AS idle,

FROM time A join ttld.login B on A.EmpID=B.username 
WHERE DATE = '01-15-2019' GROUP BY A.EmpID

第三列應該是我在查詢下面嘗試過的活動和空閑數字的總和,但由於我的知識很少或一無所知,我無法運行它

SELECT A.Date, A.EmpID,
SUM(CASE WHEN State = 'active' THEN A.MinutesatState ELSE 0 END) AS active, 
SUM(CASE WHEN State = 'idle' THEN A.MinutesatState ELSE 0 END) AS idle,

SUM(CASE WHEN State = ('idle','active') THEN A.MinutesatState ELSE 0 END) AS Total_of_active_and_Idle

FROM time A join ttld.login B on A.EmpID=B.username 
WHERE DATE = '01-15-2019' GROUP BY A.EmpID

您可以在下面嘗試-您需要添加 ('idle','active')

SELECT A.Date, A.EmpID,
SUM(CASE WHEN State = 'active' THEN A.MinutesatState ELSE 0 END) AS active, 
SUM(CASE WHEN State = 'idle' THEN A.MinutesatState ELSE 0 END) AS idle,

SUM(CASE WHEN State in ('idle','active') THEN A.MinutesatState ELSE 0 END) AS Total_of_active_and_Idle

FROM time A join ttld.login B on A.EmpID=B.username 
WHERE DATE = '01-15-2019' GROUP BY A.EmpID,A.Date

你需要IN子句或= any () ,但是MySQL有簡寫而不是case . . end case . . end case . . end

SELECT A.Date, A.EmpID,
       SUM( State = 'active' ) AS active, 
       SUM( State = 'idle' ) AS idle,
       SUM( State = any('idle','active') ) AS Total_of_active_and_Idle
FROM time A JOIN
     ttld.login B 
     ON A.EmpID = B.username 
WHERE DATE = '01-15-2019' 
GROUP BY A.EmpID;

暫無
暫無

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

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