1.源数据
SELECT * FROM #OrderPlanPrint;
2.列转行后的数据
SELECT tt.订单号, ? ? ? ?tt.物料代码, ? ? ? ?tt.物料名称, ? ? ? ?tt.物料规格, ? ? ? ?tt.订单数量, ? ? ? ?tt.生产计划, ? ? ? ?tt.TODAY, ? ? ? ?tt.开始时间 ?? ? ? INTO #OrderPlanPrint1 FROM #OrderPlanPrint ? ? UNPIVOT ? ? ( ? ? ? ? TODAY ? ? ? ? FOR 生产计划 IN (数量, 派工号) ? ? ) tt;
?? ?SELECT * FROM #OrderPlanPrint1;
3.用循环生成时间列
------------------------------------------------------------------------------------- declare @starttime datetime,@endtime datetime,@sql varchar(2000) ? set @starttime = CONVERT(VARCHAR(100), GETDATE(), 23);--起始时间 set @endtime = CONVERT(VARCHAR(100), GETDATE() + 7, 23);--结束时间 set @sql = 'SELECT * ';--需要查询什么字段在这里拼装 ? while @starttime < @endtime begin ? set @sql = @sql +', CASE WHEN 开始时间='''+Convert(Varchar(100),@starttime,23)+''' THEN TODAY END AS '+''''+Convert(Varchar(100),@starttime,23)+'''' ? SET @starttime = @starttime+1 END ?set @sql = @sql+' from #OrderPlanPrint1'--其他查询条件在这里拼装 exec(@sql) --执行SQL ? print @sql --打印SQL?
?
|