我正在根据我存储在数据库中的数据创建报告;只是有点卡在下一块上。
这是我的结构的SQLFiddle
该报告每周五举行。它从表中获取过去7天内的所有记录(自上次报告以来)。
我需要添加到查询中的部分只会记录当前SUM
awardValue
超过75美元的记录。
我把它记录在时间范围内(自上次报告以来),但需要包含其他部分。
我该如何做到这一点?
答案 0 :(得分:2)
假设您在计算总和时并不关心奖励状态 -
Select Main.*
from main
INNER JOIN(
SELECt EMPLOYEE,SUM(AWARDVALUE) SUM
FROM MAIN
WHERE YEAR(AWARDDATE) = YEAR(GetDate())
GROUP BY EMPLOYEE
HAVING SUM(AWARDVALUE)>75) EMPLIMIT
ON Main.EMPLOYEE = EMPLIMIT.EMPLOYEE
Where awardStatus = '1' AND awardDate BETWEEN GetDate() - 7 AND GetDate()
使用结果和TaxIt列拉入SUM的修改查询
Select Main.*,EmployeeSum,
CASE WHEN EmployeeSum>75 THEN 'Yes' ELSE 'No' END AS TaxIt
from main
INNER JOIN(
SELECt EMPLOYEE,SUM(AWARDVALUE) EmployeeSum
FROM MAIN
WHERE YEAR(AWARDDATE) = YEAR(GetDate())
GROUP BY EMPLOYEE) EMPLIMIT
ON Main.EMPLOYEE = EMPLIMIT.EMPLOYEE
Where awardStatus = '1' AND awardDate BETWEEN GetDate() - 7 AND GetDate()
答案 1 :(得分:-2)
为此你需要在小组查询后放置。
SELECT A,B,C, SUM(D)
FROM TABLE
GROUP BY A,B,C
HAVING sum(awardValue) > 75