2016-07-29 74 views
0

我正在處理.net圖表控制項目,並且是SQL新手。我希望能夠排序來自文本框輸入的日期。Tsql對ORDER BY與WHERE排序

SELECT Employee.[First Name] + ' ' + Employee.[Last Name] AS 'Name', 
sum(Time.[Total Hours]) AS 'Total Hours' 
, FORMAT([Time].[Time in], 'd', 'en-gb') AS 'Worked On' 
FROM Employee 
inner join [Time] on 
Employee.ID = Time.EmployeeIdFK 
GROUP BY FORMAT([Time].[Time in], 'd', 'en-gb') 
,Employee.[First Name] + ' ' + Employee.[Last Name] 

--WHERE Time.[Time in] between '6/23/2016' and '7/26/2016' 

到目前爲止,運行後我得到的查詢。這只是我正在測試的一個dummy.mdf。

Name         Total Hours   Worked On 
------------------------------------ ---------------------- ----------- 
Cola Coco       11.3332033110278  23/07/2016 
Cola Coco       0.00417034752421024 26/07/2016 
Lmimited Pepsi      14.2175327702778  23/07/2016 
Lmimited Pepsi      2.9601598583878E-07 24/07/2016 
Lmimited Pepsi      1.05082415577342E-06 26/07/2016 

我想補充

WHERE Time.[Time in] between '6/23/2016' and '7/26/2016' 

或類似的東西,這樣我就可以從輸入文本框中的日期。

+0

是什麼問題?您可以在「GROUP BY」之前添加您的WHERE子句 –

+0

放在組前的位置 –

回答

1

--UPDATE--

謝謝你的意見,我已經放置WHERE GROUP BY已經給我一個錯誤之後。

SELECT Employee.[First Name] + ' ' + Employee.[Last Name] AS 'Name', 
sum(Time.[Total Hours]) AS 'Total Hours' 
, FORMAT(Time.[Time in], 'd', 'en-gb') AS 'Worked On' 
FROM Employee 
inner join Time on 
Employee.ID = Time.EmployeeIdFK 
WHERE Time.[Time in] between '6/23/2016' and '7/26/2016' 
GROUP BY FORMAT(Time.[Time in], 'd', 'en-gb') 
,Employee.[First Name] + ' ' + Employee.[Last Name] 

Name         Total Hours   Worked On 
------------------------------------ ---------------------- ----------- 
Cola Coco       11.3332033110278  23/07/2016 
Lmimited Pepsi      14.2175327702778  23/07/2016 
Lmimited Pepsi      2.9601598583878E-07 24/07/2016 

現在工作正常。