一条简单的sql,正确马上设置为最佳答案

skyim 发布于 2013/10/10 21:18
阅读 347
收藏 0

select count(*) from A 
TYPE= 'I' And  ( TIME >= '2013/8/1 00:00:00' And TIME < 
'2013/8/2 00:00:00' )  
union on
select count(*) from A 
TYPE= 'I' And  ( TIME >= '2013/8/2 00:00:00' And TIME < 
'2013/8/3 00:00:00' ) 
union on

可以这样,但是我使用的是Mybatis,时间是我迭代出来的foreach,但是多了union on,怎么去掉这个union on




加载中
0
南湖船老大
skyim
skyim
在sybase里面我看见只有一行用union,难道sybase不支持union吗
0
CheneyWong
CheneyWong
select count(*) from A  
TYPE= 'I' And  ( TIME >= '2013/8/1 00:00:00' And TIME <  
'2013/8/3 00:00:00' ) 
skyim
skyim
我需要的是两个值,不是一个值,你明白我意思吗,谢谢
0
mynacche
mynacche

select x.TIME,count(x.TIME) as NUM

FROM (

select convert(varchar(8),TIME) as TIME from A 

where TYPE= 'I'

) x

group by x.TIME

大概是这么个意思,先按日期分组,不同数据库格式化日期方法不同。

0
陈能涛
陈能涛
select count(*)
from A
where TYPE= 'I' And  TIME between '2013/8/1 00:00:00' And '2013/8/3 00:00:00'

这样试试

skyim
skyim
我需要的是两个值,不是一个值,你明白我意思吗
0
skyim
skyim

我想错误啦,谢谢大家,最好的答案是
union all

0
寒熊
寒熊

你是要统计每天的数据条数,这个在sql server里可以

select convert(char(10),TIME,120),count(*) A from A where type='I' group by convert(char(10),TIME,120)
mynacche
mynacche
嗯,是我记错了,如果还select了其他列,就会报 “该列没有包含在聚合函数或 GROUP BY子句中”错
寒熊
寒熊
回复 @mynacche : 不会的,这个语法在sql server 中是合法的
mynacche
mynacche
很久没写sql,都忘记convert写法了。。不过你这样会报其他列不存在group by之中错误吧?
0
雷佳平

<iterate property="times" open=" " close=" " conjunction=union on ">

select count(*) from A TYPE= 'I' And ( TIME >= #times[]# And TIME < #times[]#+1 ) 大概就这样吧,你把时间放到一个数组里面嘛

</iterate>

返回顶部
顶部