sql server 2008 - SQL Query to look up data by Date intervals -
i have table statues, this:
item - status - date 12345 - 1 - 8/29/2015 12345 - 3 - 9/1/2015 12345 - 5 - 9/30/2015 22245 - 1 - 9/28/2015 22245 - 3 - 9/30/2015 what need have query returns along lines of:
item - status today - status 15 days ago - status 30 days ago - status 45 days ago 12345 - 5 5 3 1 22245 = 3 1 1 1 i can't figure out how in query.
the interval set 15 days, , need know status each item in on day.
please help...
here sql fiddle or assume you're trying achieve. using query this.
with cte ( select s.item, s.status, datediff(day, getdate(), [date]) daysago statuses s ), statuscte ( select item, min(case when daysago = 0 [status] end) [status today], min(case when daysago between -15 , -1 [status] end) [status 15 days ago], min(case when daysago between -30 , -16 [status] end) [status 30 days ago], min(case when daysago < -30 [status] end) [status 45 days ago] cte group item ) select item, coalesce([status today], [status 15 days ago], [status 30 days ago], [status 45 days ago]) [status today], coalesce([status 15 days ago], [status 30 days ago], [status 45 days ago], [status today]) [status 15 days ago], coalesce([status 30 days ago], [status 45 days ago], [status 15 days ago], [status today]) [status 30 days ago], coalesce([status 45 days ago], [status 30 days ago], [status 15 days ago], [status today] ) [status 45 days ago] statuscte
Comments
Post a Comment