站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题请教大家一句MSSQL语句的写法,必解贴.具体我表达不太清楚,请大家看看我写出的例子,帮忙解决下,谢了

请教大家一句MSSQL语句的写法,必解贴.具体我表达不太清楚,请大家看看我写出的例子,帮忙解决下,谢了

摘要: 请教大家一句MSSQL语句的写法,必解贴.具体我表达不太清楚,请大家看看我写出的例子,帮忙解决下,谢了


我在MSSQL数据库中有如下表:
A字段(字符型) B字段(日期型)
00 2006-11-6 7:33:29
01 2006-11-6 7:27:09
00 2006-11-6 7:40:31
01 2006-11-6 17:04:24
00 2006-11-6 23:03:50
请问怎么用一句MSSQL语句,查出一天当中24个小时间,每个小时里字段A中出现的00和01的个数呢,如下
0点... 7点... 17点... 23点..
00有: 0 2 0 1
01有: 0 1 1 0


select A,count(case when hour(B) between 0 and 7 then B else null end),
,count(case when hour(B) between 7 and 17 then B else null end)
from table1
where B between '2006-11-20' and '2006-11-21'
group by A


你想个办法去取得每条记录的小时数,然后按小时分组就行了,我的标准SQL不知道跟你MSSQL语句有没有区别哦.我想主要是取得这个小时数的函数问题
select a,count(A) 次数,to_char(B,'yyyy-MM-dd hh24') 时间 from b
group by to_char(B,'yyyy-MM-dd hh24'),A;

to_char(B,'yyyy-MM-dd hh24'),此函数主要是截取年月日小时,按小时分组统计,然后按A的值分组统计.不同的数据库可以函数不一样.此代码在oracle中已经实现了


还结帖吗?


当然结呀,不过还有个问题,当某小时里没记录时,我想让次数为0,而不是没记录,不知明白意思不



试试


把null换成0就是了


不是显示NULL呀,而是如值是NULL,就没有这行记录地



要求有点高啊.在数据库方面应该是没办法实现了,只能在程序方面做控制了


要是一天里边一条记录都没有,那可麻烦啊




select A,sum(case when hour(B) between 0 and 7 then 1 else 0 end)
from ...

就行了,遇到问题,自己就不想啊


有这么简单吗?他想要一天24小时的记录,某一个小时里没有记录,也要显示出来,你有这么强吗?不是很简单吧?


↑返回目录
前一篇: poi操作Excel的问题,总也有问题,谁能给个例子看看。
后一篇: jsp 显示问题,显示字数太多,怎样有限制的显示?