sql - how to query the count of records from first day to last day of the month -


i count of every day records table. example have table “employee” following fields id, empno, datehired. , have following records

id  empno       datehired 1   000001      3/2/2013 12:00:00 2   000002      3/14/2013 12:00:00 3   000003      3/14/2013 12:00:00 4   000004      3/21/2013 12:00:00 5   000005      4/2/2013 12:00:00 6   000006      4/3/2013 12:00:00 7   000007      4/3/2013 12:00:00 8   000008      4/3/2013 12:00:00 9   000009      4/3/2013 12:00:00 10  000010      4/4/2013 12:00:00 11  000011      4/5/2013 12:00:00 12  000012      5/1/2013 12:00:00 

and current month april, how can value:

count   day 0   4/1/2013 12:00:00 1   4/2/2013 12:00:00 4   4/3/2013 12:00:00 1   4/4/2013 12:00:00 1   4/5/2013 12:00:00 0   4/6/2013 12:00:00 0   4/7/2013 12:00:00 0   4/8/2013 12:00:00 0   4/30/2013 12:00:00 

you need create calendar whole month of april in order whole dates of month. aid of using common table expression, can want.

after creating calendar, join table employee using left join dates have no matches on table employee still included on result.

with april_calendar (   select cast('20130401' datetime) [date]   union   select dateadd(dd, 1, [date])     april_calendar    dateadd(dd, 1, [date]) <= '20130430' ) select a.date, count(b.datehired) totalcount   april_calendar        left join employee b           on a.date = b.datehired group  a.date order  a.date 

Comments

Popular posts from this blog

monitor web browser programmatically in Android? -

Shrink a YouTube video to responsive width -

wpf - PdfWriter.GetInstance throws System.NullReferenceException -