【发布时间】:2015-02-18 17:15:42
【问题描述】:
在我的表中,我有日期列,上面有默认值 TIMESTAMP。我想按小时计算我的记录。我像这样使用sproc
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;
没有
and (IF(docs != null))
我的 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;
【问题讨论】:
标签: mysql stored-procedures count