【发布时间】:2016-08-02 20:44:23
【问题描述】:
SELECT sum(sum(DATEDIFF(DAY,LeaveBreakup.StartDate,LeaveBreakup.EndDate)+1)) AS totalNoOfDays,
LeaveApplication.Id,
LeaveBreakup.StartDate,
LeaveBreakup.EndDate,
LeaveApplication.ReasonForLeave,
LeaveApplication.ProcessorComment,
Team.Name,
LeaveTypeDetail.Name
FROM LeaveApplication
INNER JOIN Employee ON LeaveApplication.Employee=Employee.Id
INNER JOIN Team ON Employee.Team=Team.Id
INNER JOIN LeaveBreakup ON LeaveApplication.Id=LeaveBreakup.LeaveApplication
INNER JOIN LeaveTypeDetail ON LeaveBreakup.LeaveType=LeaveTypeDetail.LeaveType
WHERE Employee.Team=5
AND LeaveStatus!=0
AND LeaveBreakup.StartDate BETWEEN '01-01-2016' AND '01-31-2016'
AND LeaveBreakup.WhichHalf=0
GROUP BY LeaveApplication.Id,
LeaveBreakup.StartDate,
LeaveBreakup.EndDate,
LeaveApplication.ReasonForLeave,
LeaveApplication.ProcessorComment,
Team.Name,
LeaveTypeDetail.Name
ORDER BY LeaveBreakup.StartDate
【问题讨论】:
-
为什么要
sum的sum?这就是错误。 -
你不需要开头的那两个 SUM SUM(blah)+1
-
我只想要该列 'totalNoOfDays' 的总和
-
提前谢谢 :)
-
查看 WITH ROLLUP 或使用子查询求和 totalNoOfDays
标签: sql-server aggregate-functions