select sum(num) from table where flag=1
select sum(num) from table where flag=2
select sum(num) from table where flag=3
我是最新手,我觉得因该有简单的办法, 请问能不能一条就直接返回 sum1,sum2,sum3 呢 就是把它们合并了。如果再加上一个条件又怎么样呢?select sum(num) from table where flag=1 and 操作员=01
select sum(num) from table where flag=2 and 操作员=01
select sum(num) from table where flag=3 and 操作员=01select sum(num) from table where flag=1 and 操作员=02
select sum(num) from table where flag=2 and 操作员=02
select sum(num) from table where flag=3 and 操作员=02请高手告诉一下
,sum2=sum(case flag when 2 then 1 else 0 end)
,sum3=sum(case flag when 3 then 1 else 0 end)
from tb
,sum2=sum(case flag when 2 then 1 else 0 end)
,sum3=sum(case flag when 3 then 1 else 0 end)
from tb
group by 操作员
select sum1=sum(case flag when 1 then 1 else 0 end)
,sum2=sum(case flag when 2 then 1 else 0 end)
,sum3=sum(case flag when 3 then 1 else 0 end)
from tb
where 操作员='01'
select 操作员,flag,sum(num) from table group by 操作员,flag
select sum(num) from table group by flag
where flag =1 or flag=2 or flag=3
--2
select sum(num) from table group by flag
where (操作员=01 and (flag =1 or flag=2 or flag=3))
or (操作员=02 and (flag =1 or flag=2 or flag=3))
select sum(num) from table where flag=2
select sum(num) from table where flag=3
---------------------------------------------------
select flag , sum(num) from table where flag in (1,2,3) group by flag
select t.操作员,sum(t.num1) as sum1,sum(t.num2) as sum2,sum(t.num3) as sum3 from
(select 操作员,
case flag when 1 then num else 0 end as num1,
case flag when 2 then num else 0 end as num2,
case flag when 3 then num else 0 end as num3,
from table) t group by t.操作员
select sum(num) from table where flag=2 and 操作员=01 and 日期 >='20070101' and 日期 >='20071231'
select sum(num) from table where flag=3 and 操作员=01 and 日期 >='20070101' and 日期 >='20071231'select sum(num) from table where flag=1 and 操作员=02 and 日期 >='20070101' and 日期 >='20071231'
select sum(num) from table where flag=2 and 操作员=02 and 日期 >='20070101' and 日期 >='20071231'
select sum(num) from table where flag=3 and 操作员=02 and 日期 >='20070101' and 日期 >='20071231'
日期 >='20070101' and 日期 <='20071231'
select sum1=sum(case flag when 1 then 1 else 0 end)
,sum2=sum(case flag when 2 then 1 else 0 end)
,sum3=sum(case flag when 3 then 1 else 0 end)
from tb
where 操作员='01' and 日期 between '20070101' and '20071231'
select 操作员, sum1=sum(case flag when 1 then 1 else 0 end)
,sum2=sum(case flag when 2 then 1 else 0 end)
,sum3=sum(case flag when 3 then 1 else 0 end)
from tb
where 日期 between '20070101' and '20071231'
group by 操作员
--如果只查某一个操作员:
select sum1=sum(case flag when 1 then num else 0 end)
,sum2=sum(case flag when 2 then num else 0 end)
,sum3=sum(case flag when 3 then num else 0 end)
from tb
where 操作员='01' and 日期 between '20070101' and '20071231'
--查所有操作员
select 操作员, sum1=sum(case flag when num then 1 else 0 end)
,sum2=sum(case flag when 2 then num else 0 end)
,sum3=sum(case flag when 3 then num else 0 end)
from tb
where 日期 between '20070101' and '20071231'
group by 操作员
,sum2=sum(case flag when 2 then 1 else 0 end)
,sum3=sum(case flag when 3 then 1 else 0 end)
from tb
where 操作员='01' and 日期 between '20070101' and '20071231'
select t.操作员,sum(t.num1) as sum1,sum(t.num2) as sum2,sum(t.num3) as sum3 from
(select 操作员,
case flag when 1 then num else 0 end as num1,
case flag when 2 then num else 0 end as num2,
case flag when 3 then num else 0 end as num3,
from table where 日期 between '20070101' and '20071231') t group by t.操作员
sum2=sum(case flag when 2 then 1 else 0 end),
sum3=sum(case flag when 3 then 1 else 0 end)
from table