2016-11-10 55 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

如何获取当前时间线在此查询 –