日期:2014-05-18  浏览次数:20636 次

怎么把这几条sql语句合成一条查出来?
OState int not null--订单状态'1=新订单,2=订单确认,3=发货,4=订单结束',

select count(*) as '新订单' from Orders where OState=1
select count(*) as '确认订单' from Orders where OState=2
select count(*) as '发货订单' from Orders where OState=3
select count(*) as '成交订单' from Orders where OState=4

------解决方案--------------------
SQL code
select
  sum(case when OState=1  then 1 else 0 end) as '新订单' ,
  sum(case when OState=2  then 1 else 0 end) as '确认订单' 
  sum(case when OState=3  then 1 else 0 end) as '发货订单',
  sum(case when OState=4  then 1 else 0 end) as '成交订单' 
from 
  Orders

------解决方案--------------------
SQL code
select  
sum(case when OState=1 then 1 else 0 end)新订单 
,sum(case when OState=2 then 1 else 0 end)确认订单 ,
sum(case when OState=3 then 1 else 0 end)发货订单 ,
sum(case when OState=4 then 1 else 0 end)成交订单 
from Orders

------解决方案--------------------
SQL code
SELECT  SUM(CASE WHEN OState = 1 THEN 1 ELSE 0 END) 新订单, 
        SUM(CASE WHEN OState = 2 THEN 1 ELSE 0 END) 确认订单, 
        SUM(CASE WHEN OState = 3 THEN 1 ELSE 0 END) 发货订单, 
        SUM(CASE WHEN OState = 4 THEN 1 ELSE 0 END) 成交订单
FROM    Orders