2016-07-29 73 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 

现在工作正常。