Click here to Skip to main content
15,891,136 members
Please Sign up or sign in to vote.
1.00/5 (1 vote)
See more:
I wrote a query which is giving me records from the beginning from the table. I want to get the result for last 1 day from the current date.

Below are the output with and without date

What I have tried:

SQL
select 
(MonitorData.DesktopGroup.Name) as 'Delivery',sum(MonitorData.DesktopOSDesktopSummary.PeakConcurrentInstanceCount) as 'Total'
from MonitorData.DesktopGroup
join MonitorData.DesktopOSDesktopSummary on MonitorData.DesktopOSDesktopSummary.DesktopGroupId = MonitorData.DesktopGroup.Id
group by MonitorData.DesktopGroup.Name

Output:
call Center Appleton Dev	77
Call Center Spokane Dev	        146
Impact Base Dev	                686
Impact HN Dev	                2480
Impact LS Dev	                48
Windows 10 VDI	                916

I modified like below
SQL
select 
(MonitorData.DesktopGroup.Name) as 'Delivery',sum(MonitorData.DesktopOSDesktopSummary.PeakConcurrentInstanceCount) as 'Total'
from MonitorData.DesktopGroup
join MonitorData.DesktopOSDesktopSummary on MonitorData.DesktopOSDesktopSummary.DesktopGroupId = MonitorData.DesktopGroup.Id
where MonitorData.DesktopOSDesktopSummary.ModifiedDate BETWEEN '2017-07-27' AND '2017-07-28'
group by MonitorData.DesktopGroup.Name

but it is not returning the expected value.
expected is
call Center Appleton Dev	0
Call Center Spokane Dev	        1
Impact Base Dev	                0
Impact HN Dev	                0
Impact LS Dev	                0
Windows 10 VDI	                1

It is coming as
Impact HN Dev	                13
Posted
Updated 28-Jul-17 2:13am
Comments
Mehdi Gholam 28-Jul-17 4:44am    
Since we don't have access to your data, there is very little help we can provide, other than play around with your dates and query.
F-ES Sitecore 28-Jul-17 4:59am    
ORDER BY the date such that the record you want is the first, not the last, then change "SELECT" to "SELECT TOP 1"

1 solution

Replace date with datetime or take from date as one day before
<pre lang="SQL">Select 
(MonitorData.DesktopGroup.Name) as 'Delivery',sum(MonitorData.DesktopOSDesktopSummary.PeakConcurrentInstanceCount) as 'Total'
from MonitorData.DesktopGroup
join MonitorData.DesktopOSDesktopSummary on MonitorData.DesktopOSDesktopSummary.DesktopGroupId = MonitorData.DesktopGroup.Id
where MonitorData.DesktopOSDesktopSummary.ModifiedDate BETWEEN '2017-07-27 00:00:00.000' AND '2017-07-28 23:59:59.000'
group by MonitorData.DesktopGroup.Name

or

Select 
(MonitorData.DesktopGroup.Name) as 'Delivery',sum(MonitorData.DesktopOSDesktopSummary.PeakConcurrentInstanceCount) as 'Total'
from MonitorData.DesktopGroup
join MonitorData.DesktopOSDesktopSummary on MonitorData.DesktopOSDesktopSummary.DesktopGroupId = MonitorData.DesktopGroup.Id
where MonitorData.DesktopOSDesktopSummary.ModifiedDate BETWEEN '2017-07-26' AND '2017-07-28'
group by MonitorData.DesktopGroup.Name
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900