2016-10-30 7 views
0

私の表の出席のmySQL選択クエリステートメント

Insert Into tblAttendance(cEmpID,cCode,dDate,notMin) Values 
('1000','R' , 120,'2016-10-27'), 
('1000','R' , 120,'2016-10-28'), 
('1000','S' , 120,'2016-10-29'), 
('1000','L' , 120,'2016-10-30'), 
('1001','R' , 120,'2016-10-27'), 
('1001','R' , 120,'2016-10-28'), 
('1001','S' , 120,'2016-10-29'), 
('1001','L' , 120,'2016-10-30') 

に私はすべてのOT分を合計する必要があります。 コードにつき、このような出力に何か.. のEmpID、R-合計、S-合計、L-トータル

ここに私のサンプルクエリは、私がcEmpID .. を含める必要が

Select (Select sum(nOTMin) from tblattenddetail Where cCode='R') 'R-Total', 
     (Select sum(nOTMin) from tblattenddetail Where cCode='S') 'S-Total', 
     (Select sum(nOTMin) from tblattenddetail Where cCode='L') 'L-Total' 

のヘルプしてください私はこれをcEmpIDを含むように修正する方法を教えてください。

答えて

1

ケース式を使用して、条件付きで正しい値を集計できます。これは、あなたが欲しいものを行う必要があります。

SELECT 
    cEmpID, 
    SUM(CASE WHEN cCode='R' THEN nOTMin ELSE 0 END) AS 'R-Total', 
    SUM(CASE WHEN cCode='S' THEN nOTMin ELSE 0 END) AS 'S-Total', 
    SUM(CASE WHEN cCode='L' THEN nOTMin ELSE 0 END) AS 'L-Total' 
FROM tblAttendance 
GROUP BY cEmpID 

Sample SQL Fiddle

+1

誰もあなたが列の別名のための単一引用符を使用することができることを私に言っていないのはなぜ?これは私の人生の5分のように私を救うだろう;-) –