用SQL数据横着显示??

来源:百度知道 编辑:UC知道 时间:2024/06/17 10:57:24
select count(*) a from MOCTA where
(MOCTA.TA003 >= '20081201') --工单开始日期
AND (MOCTA.TA003 <= '20081231') --工单结束日期
AND (MOCTA.TA001 = '5120') --工单单别
AND (MOCTA.TA011 = '1') --生产状态 1.未生产,2.已发料,3.生产中,Y.已完工,y.指定完工
union
select count(*) b from MOCTA where
(MOCTA.TA003 >= '20081201') --工单开始日期
AND (MOCTA.TA003 <= '20081231') --工单结束日期
AND (MOCTA.TA001 = '5120') --工单单别
AND (MOCTA.TA011 = '2') --生产状态 1.未生产,2.已发料,3.生产中,Y.已完工,y.指定完工
union
select count(*) c from MOCTA where
(MOCTA.TA003 >= '20081201') --工单开始日期
AND (MOCTA.TA003 <= '20081231') --工单结束日期
AND (MOCTA.TA001 = '5120') --工单单别
AND (MOCTA.TA011 = '3') --生产状态 1.未生产,2.已发料,3.生产中,Y.已完工,y.指定完工

表和字段全部一样,只是生产状态那不一样,我想把5个状态的结果全横着显示不知道可以不可以啊?高手指导下~!!

select sum(case when TA011='1' then 1 else 0 end) as 未生产总数,sum(case when TA011='2' then 1 else 0 end) as 已发料总数,sum(case when TA011='3' then 1 else 0 end) as 生产中总数 from MOCTA where TA003 between '20081201' and '20081231' and TA001 = '5120'

有几个生成状态你就加吧。。 这里只列举你的三个状态。

是不是要列变成行?
http://www.baidu.com/s?tn=360se_3_dg&ie=gb2312&bs=sql+%B9%D2%C6%F0%CE%C4%BC%FE&sr=&z=&cl=3&f=8&wd=sql%D0%D0%C1%D0%DED%93Q&ct=0