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

问个查询语句!该怎么处理

2012-06-10 
问个查询语句!!!如图所示,用SQL语句查询record表,得出record表下方的临时表(对a、b非NULL值进行计数,条件是

问个查询语句!!!


如图所示,用SQL语句查询record表,得出record表下方的临时表(对a、b非NULL值进行计数,条件是8<=timea<=11的时候a才能计数,8<=timeb<=11的时候b才能计数,也就是说record表上红色部分是可计数的)
请问查询语句要怎么写呢?求指教感激不尽!



[解决办法]
Select Sum(T.a), Sum(T.b)
From (Select Count(a) As a, 0 b From Rercord Where 8<=timea<=11 And a is Not Null
Union 
Select 0 a, Count(b) As b From Rercord Where 8<=timeb<=11 And b is Not Null) T

[解决办法]

SQL code
with Record as(    --虚拟出一张表    select 1 as ID,null as a, 22 as b,10 as timea,7 as timeb union all    select 2,33,null,11,8 union all    select 3,44,33,9,9 union all    select 4,11,null,3,9 union all    select 5,22,31,7,11 union all    select 6,null,5,13,10)select     sum(        --增加一列,判断 timea如果在8 和 11 之间 并且 a 不为空 设置为1 ,最后sum统计        case when timea between 8 and 11 and a IS not null              then 1        else 0         end    ) as a,    SUM    (        --增加一列,判断 timea如果在8 和 11 之间 并且 b 不为空 设置为1 ,最后sum统计        case when timeb between 8 and 11 and b IS not null              then 1        else 0        end     )as b from Record/*a           b----------- -----------2           3(1 row(s) affected)*/ 

热点排行