declare @flag int
set @flag=0
declare @temp int
select @temp=sum(*) from (select
sum(case when condition1=true then 1 else 0 end) as size1,
sum(case when condition2=true then 1 else 0 end) as size2,
sum(case when condition3=true then 1 else 0 end) as size3,
sum(case when condition4=true then 1 else 0 end) as size4,
sum(case when condition5=true then 1 else 0 end) as size5,
sum(case when condition6=true then 1 else 0 end) as size6,
sum(case when condition7=true then 1 else 0 end) as size7,
sum(case when condition8=true then 1 else 0 end) as size8,
sum(case when condition9=true then 1 else 0 end) as size9,
sum(case when condition10=true then 1 else 0 end) as size10
from tables
where ...
) as a
if (@temp>0)
set @flag=1通过对标志位的判断就可以设size11为0或1了,
后面只需对@temp进行累加继续对标志位进行判断就行了
^_^
set @flag=0
declare @temp int
select @temp=sum(*) from (select
sum(case when condition1=true then 1 else 0 end) as size1,
sum(case when condition2=true then 1 else 0 end) as size2,
sum(case when condition3=true then 1 else 0 end) as size3,
sum(case when condition4=true then 1 else 0 end) as size4,
sum(case when condition5=true then 1 else 0 end) as size5,
sum(case when condition6=true then 1 else 0 end) as size6,
sum(case when condition7=true then 1 else 0 end) as size7,
sum(case when condition8=true then 1 else 0 end) as size8,
sum(case when condition9=true then 1 else 0 end) as size9,
sum(case when condition10=true then 1 else 0 end) as size10
from tables
where ...
) as a
if (@temp>0)
set @flag=1通过对标志位的判断就可以设size11为0或1了,
后面只需对@temp进行累加继续对标志位进行判断就行了
^_^
size1+size2+size3+size4+size5+size6+size7+size8+size9+size10) as size11
from (
select
sum(case when condition1=true then 1 else 0 end) as size1,
sum(case when condition2=true then 1 else 0 end) as size2,
sum(case when condition3=true then 1 else 0 end) as size3,
sum(case when condition4=true then 1 else 0 end) as size4,
sum(case when condition5=true then 1 else 0 end) as size5,
sum(case when condition6=true then 1 else 0 end) as size6,
sum(case when condition7=true then 1 else 0 end) as size7,
sum(case when condition8=true then 1 else 0 end) as size8,
sum(case when condition9=true then 1 else 0 end) as size9,
sum(case when condition10=true then 1 else 0 end) as size10,
sum(1) as AllSize
from tables
where ...
) as tmp
select @temp=a.sumall from (select
sum(case when condition1=true then 1 else 0 end)+
sum(case when condition2=true then 1 else 0 end)+
sum(case when condition3=true then 1 else 0 end)+
sum(case when condition4=true then 1 else 0 end)+
sum(case when condition5=true then 1 else 0 end)+
sum(case when condition6=true then 1 else 0 end)+
sum(case when condition7=true then 1 else 0 end)+
sum(case when condition8=true then 1 else 0 end)+
sum(case when condition9=true then 1 else 0 end)+
sum(case when condition10=true then 1 else 0 end) as sumall
from tables a
where ...
select sum(case when condition1=true then 1 else 0 end) as size1,
sum(case when condition2=true then 1 else 0 end) as size2,
sum(case when condition3=true then 1 else 0 end) as size3,
sum(case when condition4=true then 1 else 0 end) as size4,
sum(case when condition5=true then 1 else 0 end) as size5,
sum(case when condition6=true then 1 else 0 end) as size6,
sum(case when condition7=true then 1 else 0 end) as size7,
sum(case when condition8=true then 1 else 0 end) as size8,
sum(case when condition9=true then 1 else 0 end) as size9,
sum(case when condition10=true then 1 else 0 end) as size10
from tables
where ...
) tem