2017-06-02 82 views
0

我有兩個基本相同的查詢,除了一個正在計算一個月迄今的總和,另一個正在計算年迄今總和。我不希望每個員工都有兩個單獨的表格,而是希望每個員工在他們的姓名旁邊都有一個至今爲止的月份和年份至今的列。我試過工會和一些子查詢,但我仍然遇到麻煩。我看了很多資源,但沒有找到我可以使用的東西。SQL Server在同一查詢的不同日期執行相同的計算

--Query 1: 
SELECT 
    A.EMPLOYEENUMBER AS 'Employee No.', 
    B.ENTITYNAME AS 'Employee Office', 
    B.NAME1 AS 'Employee Information', 
    SUM(A.NUMBEROF) AS 'Ent. Qty' 
FROM prod.DAILYTIMESHEETLINE A 
JOIN prod.EMPLOYEE B on A.EMPLOYEENUMBER = B.EMPLOYEENUMBER 
WHERE A.THEDATE BETWEEN '2017.04.01' AND '2017.04.30' 
GROUP BY A.EMPLOYEENUMBER, B.NAME1, B.ENTITYNAME 
ORDER BY A.EMPLOYEENUMBER 


--Query 2: 
SELECT 
    A.EMPLOYEENUMBER AS 'Employee No.', 
    B.ENTITYNAME AS 'Employee Office', 
    B.NAME1 AS 'Employee Information', 
    SUM(A.NUMBEROF) AS 'Ent. Qty' 
FROM prod.DAILYTIMESHEETLINE A 
JOIN prod.EMPLOYEE B on A.EMPLOYEENUMBER = B.EMPLOYEENUMBER 
WHERE A.THEDATE BETWEEN '2017.01.01' AND '2017.04.30' 
GROUP BY A.EMPLOYEENUMBER, B.NAME1, B.ENTITYNAME 
ORDER BY A.EMPLOYEENUMBER 
+0

使用A和B不是一個明確的將是dts和e。如果你還想按月分組,你應該添加類似datepart(mo,thedate)的東西。 – Chuck

+0

SQL Server中日期/時間文字唯一真正安全的格式,至少datetime和smalldatetime是:YYYYMMDD和YYYY-MM-DDThh:mm:ss [.nnn] - [Bad習慣踢:錯誤處理日期/範圍查詢 - Aaron Bertrand](http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/16/bad-habits-to-kick-mishandling-date-range- queries.aspx) – SqlZim

+0

這太棒了 - 謝謝!我很感激幫助。 – Erin

回答

1

試試這個:

SELECT 
    A.EMPLOYEENUMBER AS 'Employee No.', 
    B.ENTITYNAME AS 'Employee Office', 
    B.NAME1 AS 'Employee Information', 
    SUM(case when A.THEDATE BETWEEN '2017.01.01' AND '2017.04.30' then A.NUMBEROF else null end) AS 'Ent. Qty1', 
    SUM(case when A.THEDATE BETWEEN '2017.04.01' AND '2017.04.30' then A.NUMBEROF else null end) AS 'Ent. Qty2' 
FROM prod.DAILYTIMESHEETLINE A 
JOIN prod.EMPLOYEE B on A.EMPLOYEENUMBER = B.EMPLOYEENUMBER 
WHERE A.THEDATE BETWEEN '2017.01.01' AND '2017.04.30' 
GROUP BY A.EMPLOYEENUMBER, B.NAME1, B.ENTITYNAME 
ORDER BY A.EMPLOYEENUMBER 

要當心的地方:我讓 '之間的2017年1月1日' 和 '2017年4月30日',因爲 '2017年1月1日' < '2017年4月1日',修改因此;)

+0

這非常有幫助。非常感謝! – Erin

相關問題