In my table i have date column with default value TIMESTAMP on it. i want to count my record by every hour. i used sproc like this
SELECT username,
COUNT(IF(HOUR(date)=8,1,NULL) and (IF(docs != null))) AS '8:30 - 9:00',
COUNT(IF(HOUR(date)=9,1,NULL) and (IF(docs != null))) AS '9:00 - 10:00',
COUNT(IF(HOUR(date)=10,1,NULL) and (IF(docs != null))) AS '10:00 - 11:00',
COUNT(IF(HOUR(date)=11,1,NULL) and (IF(docs != null))) AS '11:00 - 12:00',
COUNT(IF(HOUR(date)=12,1,NULL) and (IF(docs != null))) AS '12:00 - 1:00',
COUNT(IF(HOUR(date)=13,1,NULL) and (IF(docs != null))) AS '1:00 - 2:00',
COUNT(IF(HOUR(date)=14,1,NULL) and (IF(docs != null))) AS '2:00 - 3:00',
COUNT(IF(HOUR(date)=15,1,NULL) and (IF(docs != null))) AS '3:00 - 4:00',
COUNT(IF(HOUR(date)=16,1,NULL) and (IF(docs != null))) AS '4:00 - 5:00',
COUNT(disblid) 'Total'
FROM claimloans
group by username;
Without
and (IF(docs != null))
part my sproc working perfectly. i don't want to count row if row doc values is null. how can i achieve this ?
this is my working sproc
SELECT username,
COUNT(IF(HOUR(date)=8,1,NULL)) AS '8:30 - 9:00',
COUNT(IF(HOUR(date)=9,1,NULL)) AS '9:00 - 10:00',
COUNT(IF(HOUR(date)=10,1,NULL)) AS '10:00 - 11:00',
COUNT(IF(HOUR(date)=11,1,NULL)) AS '11:00 - 12:00',
COUNT(IF(HOUR(date)=12,1,NULL)) AS '12:00 - 1:00',
COUNT(IF(HOUR(date)=13,1,NULL)) AS '1:00 - 2:00',
COUNT(IF(HOUR(date)=14,1,NULL)) AS '2:00 - 3:00',
COUNT(IF(HOUR(date)=15,1,NULL)) AS '3:00 - 4:00',
COUNT(IF(HOUR(date)=16,1,NULL)) AS '4:00 - 5:00',
COUNT(disblid) 'Total'
FROM claimloans
group by username;