2
我有一個查詢獲取時間時鐘和中斷時間異常。如果有人不休息,休息時間是一個負數。我需要報告「BreakTime」,但是我需要將負面休息分鐘更改爲「0」,否則報告休息分鐘。如何爲總計添加Case語句
我的查詢是:
SELECT lEmployeeID, sFirstName, sLastName,
TotalHours, BreakTime, SkippedBreak, ShortBreak
FROM (
SELECT lEmployeeID, sFirstName, sLastName,
SUM(TotalHours) AS TotalHours,
DATEDIFF(mi, MIN(dtTimeOut), MAX(dtTimeIn)) AS BreakTime,
CASE WHEN SUM(ftc.TotalHours) > 6
AND DATEDIFF(mi, MIN(ftc.dtTimeOut), MAX(ftc.dtTimeIn)) < 0
THEN 1
ELSE 0
END AS SkippedBreak,
CASE WHEN DATEDIFF(mi, MIN(ftc.dtTimeOut), MAX(ftc.dtTimeIn)) < 30
AND DATEDIFF(mi, MIN(ftc.dtTimeOut), MAX(ftc.dtTimeIn)) > 0
THEN 1
ELSE 0
END AS ShortBreak
FROM dbo.fTimeCard(@StartDate, @EndDate, @DeptList,
@iActive, @EmployeeList) AS ftc
WHERE (DID IS NOT NULL)
OR (DID IS NOT NULL)
AND (dtTimeOut IS NULL)
GROUP BY lEmployeeID, sFirstName, sLastName
) AS sub
WHERE (SkippedBreak = 1)
OR (ShortBreak = 1)
現在我的輸出看起來是這樣的:
Bob Bibby 6.03 -362
Rob thomas 10.53 -632
Bret smith 7.6 17
Ron blah 8.1 25
我需要負課間分鐘爲 「0」
可能重複的[如何在Case語句中僅顯示聚合或標記結果](http://stackoverflow.com/questions/20721824/how-to-display-only-aggregate-or-flagged-results-in - 個案聲明) –
這是一個來自我對最後一個問題的調查結果的問題。這是一個不同的問題。我現在試圖改變「Breaktime」的結果,如果它小於0 – Shmewnix
如果你爲你正在查詢的查詢提供了一個簡單的'input'數據和相應的'output'數據(結果),那將會容易得多。 – gotqn