关于汇总的问题
日期 班次 生产炉数 生产量 生产支数 入库炉数 入库量 入库支数
20030904 夜班 13 424.056 312 0 .00 0
20030904 早班 11 917.03 853 9 1331.46 1104
20030904 中班 6 879.149 641 0 .00 0
select * from (
select case when mwohed2.日期 is null then #t1.mtrgdt else mwohed2.日期 end as 日期,'炼钢' as 部门,
sum(mwohed2.生产炉数) as 生产炉数 , sum( mwohed2.生产量) as 生产量,
sum(mwohed2.生产支数)as 生产支数,sum( isnull(入库炉数,0)) 入库炉数 ,
sum(isnull(cast(入库量 as numeric(7,0)) ,0)) 入库量,
sum(isnull(cast(入库支数 as numeric(7,0)) ,0)) 入库支数
from mwohed2 full OUTER JOIN #t1 on #t1.mtrgdt=mwohed2.日期 and #t1.班次=mwohed2.班次
group by 日期,#t1.mtrgdt )
where left(right( 日期,4),2)=isnull(@date,datepart(mm,getdate())) and right(日期,2)=isnull(@d,datepart(dd,getdate()))
order by 日期
结果却是:
20030904 炼钢 10 1303.205 953 0 0 0
20030904 炼钢 20 2043.223 1814 9 1331 1104
问题点数:30、回复次数:3Top
1 楼yujohny(踏网无痕)回复于 2003-09-04 11:18:33 得分 10
改成这样
select * from (
select #t1.mtrgdt as 日期,'炼钢' as 部门,
sum(mwohed2.生产炉数) as 生产炉数 , sum( mwohed2.生产量) as 生产量,
sum(mwohed2.生产支数)as 生产支数,sum( isnull(入库炉数,0)) 入库炉数 ,
sum(isnull(cast(入库量 as numeric(7,0)) ,0)) 入库量,
sum(isnull(cast(入库支数 as numeric(7,0)) ,0)) 入库支数
from mwohed2 RIGHT OUTER JOIN #t1 on #t1.mtrgdt=mwohed2.日期 and #t1.班次=mwohed2.班次
group by #t1.mtrgdt )
where left(right( 日期,4),2)=isnull(@date,datepart(mm,getdate())) and right(日期,2)=isnull(@d,datepart(dd,getdate()))
order by 日期
Top
2 楼tj_dns(愉快的登山者)回复于 2003-09-04 11:28:06 得分 10
好象数据有问题。想得到什么结果。
Top
3 楼pengdali()回复于 2003-09-04 11:35:46 得分 10
select * from (
select case when mwohed2.日期 is null then #t1.mtrgdt else mwohed2.日期 end as 日期,'炼钢' as 部门,
sum(mwohed2.生产炉数) as 生产炉数 , sum( mwohed2.生产量) as 生产量,
sum(mwohed2.生产支数)as 生产支数,sum( isnull(入库炉数,0)) 入库炉数 ,
sum(isnull(cast(入库量 as numeric(7,0)) ,0)) 入库量,
sum(isnull(cast(入库支数 as numeric(7,0)) ,0)) 入库支数
from mwohed2 full OUTER JOIN #t1 on #t1.mtrgdt=mwohed2.日期 and #t1.班次=mwohed2.班次
group by case when mwohed2.日期 is null then #t1.mtrgdt else mwohed2.日期 end,#t1.mtrgdt )
where left(right( 日期,4),2)=isnull(@date,datepart(mm,getdate())) and right(日期,2)=isnull(@d,datepart(dd,getdate()))
order by 日期
Top




