简体   繁体   English

mySQL选择查询语句

[英]mySQL Select Query Statement

in my Table attendance 在我的餐桌上

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')

i need to sum all OT Min. 我需要总结所有OT分钟。 per Code the output something like this.. EmpID,R-Total,S-Total,L-Total 每个代码的输出是这样的。.EmpID,R-Total,S-Total,L-Total

here's my Sample Query 这是我的样本查询

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'

i need to Include the cEmpID.. Please Help me how will i revise this to Include the cEmpID.. 我需要包含cEmpID ..请帮助我如何修改此格式以包含cEmpID ..

You can use a case expression to conditionally aggregate the correct values. 您可以使用case表达式有条件地聚合正确的值。 This should do what you want: 这应该做您想要的:

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 示例SQL提琴

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM