2016-11-10 58 views
-1

此輸入查詢從表時間:獲得使用MySQL的

如何獲得三個選擇查詢 名稱值,分進入」認可小時,小時拒絕的

SELECT e.ENAME 'NAME', SUM(l.HOURS) 'HOURS ENTERED' FROM labors l, emps e 
WHERE l.EmpsID = e.EmpsID AND APPROVED = 'N' AND l.EmpsID = 'AGIUCL01' 
AND l.DATE_WORK BETWEEN '2016-10-30' AND '2016-11-05' 
    union 
(SELECT e.ENAME 'NAME', SUM(l.HOURS) 'HOURS APPROVED' FROM labors l, emps e 
    WHERE l.EmpsID = e.EmpsID AND APPROVED = 'A' AND l.EmpsID = 'AGIUCL01' 
    AND l.DATE_WORK BETWEEN '2016-10-30' AND '2016-11-05') 
    union 
    SELECT e.ENAME 'NAME', SUM(l.HOURS) 'HOURS REJECTED' FROM labors l,empse 
    WHERE l.EmpsID = e.EmpsID AND APPROVED = 'R' 
    AND l.EmpsID = 'AGIUCL01' 
    AND l.DATE_WORK BETWEEN '2016-10-30' AND '2016-11-05' 

查詢:

SELECT e.ENAME 'NAME', 
SUM(CASE WHEN l.APPROVED='N' THEN l.HOURS ELSE 0 END) 'HOURS ENTERED', 
SUM(CASE WHEN l.APPROVED='A' THEN l.HOURS ELSE 0 END) 'HOURS APPROVED', 
SUM(CASE WHEN l.APPROVED='R' THEN l.HOURS ELSE 0 END) 'HOURS REJECTED' 
FROM labors l ,emps e 
where l.DATE_WORK BETWEEN '2016-10-30' AND '2016-11-05' and 
e.TERM_DATE < e.REHIRE_DATE 
or e.TERM_DATE IS NULL 
group by (e.empsid) 

我正在執行查詢我的結果是這樣的。

NAME     HOURS ENTERED HOURS APPROVED HOURS REJECTED 
CLAUDINEAGIUS    292.00   39.00   20.00 
TODD MICHAEL ALDAMA   292.00   39.00   20.00 
STEVE ALMGREN    292.00   39.00   20.00 
SHAWN ANDERSON    292.00   39.00   20.00 
JARETT BARNETT    292.00   39.00   20.00 

但我沒有得到每個用戶輸入的當前時間線。

回答

0

可以在SUM使用條件:

SELECT e.ENAME 'NAME', 
    SUM(CASE WHEN APPROVED='N' THEN l.HOURS ELSE 0 END) 'HOURS ENTERED', 
    SUM(CASE WHEN APPROVED='A' THEN l.HOURS ELSE 0 END) 'HOURS APPROVED', 
    SUM(CASE WHEN APPROVED='R' THEN l.HOURS ELSE 0 END) 'HOURS REJECTED' 
FROM labors l, emps e 
WHERE l.EmpsID = e.EmpsID 
    AND l.EmpsID = 'AGIUCL01' 
    AND l.DATE_WORK BETWEEN '2016-10-30' AND '2016-11-05' 
+0

如何獲取當前時間線在此查詢 –