首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

再次请问(续昨日)

2012-02-04 
再次请教(续昨日)昨日说道:如下我是想把整个表都查询出来,并不是要看那一列的和。应该说,当我这个表中的某

再次请教(续昨日)
昨日说道:如下
我是想把整个表都查询出来,并不是要看那一列的和。    
应该说,当我这个表中的某列的和达到了一个值,且在某2个时间段内时的查询结果。

比如:表TABLE有A,B,C三列
A为时间,B为一个数字列,C为备注。

当B列的和达到50时,且A列在2007-6-1和2007-6-30之间时。

是要查询出这三列不是说B那一列。

今天想就上面问题在进一步说明
有一表TABLE有A,B,C,D四列
A为时间,B为一个数字列,C为备注。(A列是随系统时间变的)

能不能判断当C在当月累计达到一个值的查询结果。

[解决办法]
樓主說的是這個意思?

declare @t table(
a varchar(10),
b int,
c int)

insert @t select '2007-05-01 ', 30, 5
union all select '2007-06-01 ', 20, 3
union all select '2007-06-12 ', 15, 6
union all select '2007-06-14 ', 30, 2
union all select '2007-06-28 ', 40, 6
union all select '2007-07-03 ', 12, 7
union all select '2007-07-13 ', 53, 3
union all select '2007-07-15 ', 52, 5


select * from @t
where a between '2007-06-01 ' and '2007-06-30 '
and exists(select 1 from @t
where a between '2007-06-01 ' and '2007-06-30 '
having sum(b) > 50)


/*
a b c
---------- ----------- -----------
2007-06-01 20 3
2007-06-12 15 6
2007-06-14 30 2
2007-06-28 40 6

(所影响的行数为 4 行)
*/

热点排行