请教各位前辈:生产领料报表格式的修改!
请教各位前辈:生产领料报表格式的修改!
原领料表
部门(D) 日期BILLDATE 货品(GD) 数量(QTY)
安装部 2007-07-01 A001 100
安装部 2007-07-02 A001 250
安装部 2007-07-10 D001 120
安装部 2007-07-11 D001 70
安装部 2007-07-25 E001 8
安装部 2007-07-28 E001 7
1/要求修改后的表格式
部门 货品 第一次领日期 第一次领数量 第二次领日期 第二次领数量 第三次领日期 第三次领数量
安装部 A001 2007-07-01 100 2007-07-02 250
安装部 D001 2007-07-01 120 2007-07-02 70
安装部 E001 2007-07-25 8 2007-07-28 7
可能有第四、五次领料.
------解决方案--------------------declare @sql varchar(8000)
SELECT @sql = 'select 部门(D),货品(GD) '
select @sql = @sql + ',max(case con when ' ' '+cast(con as varchar)+ ' ' ' then 日期BILLDATE end ) as ' '第 '+cast(con as varchar) + '次领日期 ' '
,sum(case con when ' ' '+cast(con as varchar)+ ' ' ' then 数量(QTY) else 0 end ) as ' '第 '+cast(con as varchar) + '次领数量 ' ' '
from (select distinct con from (select a.*,(select count(1)
from ta where 货品(GD)=a.货品(GD) and a.日期BILLDATE> 日期BILLDATE) con from ta a)a) as a
select @sql = @sql + ',sum(isnull(时间,0)) 时间 from (select a.*,(select count(1)
from ta where 货品(GD)=a.货品(GD) and a.日期BILLDATE> 日期BILLDATE) con from ta a)a group by 货品(GD) '
print(@sql)
exec(@sql)
你先print(@sql) 看看~没测试.可能和错.print出来修改一下