问个查询语句!!!
如图所示,用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
[解决办法]
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)*/