创建SQL查询以生成报告

时间:2014-06-25 21:02:11

标签: sql sql-server tsql

我正在根据我存储在数据库中的数据创建报告;只是有点卡在下一块上。

这是我的结构的SQLFiddle

该报告每周五举行。它从表中获取过去7天内的所有记录(自上次报告以来)。

我需要添加到查询中的部分只会记录当前SUM awardValue超过75美元的记录。

我把它记录在时间范围内(自上次报告以来),但需要包含其他部分。

我该如何做到这一点?

2 个答案:

答案 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