34,838
社区成员




DECLARE @sql varchar(max)
DECLARE @columns varchar(max)
SET @columns = ''
SELECT @columns = @columns+',['+week+']'
FROM WkResult
SET @columns = STUFF(@columns,1,1,'')
SET @sql = '
SELECT *
FROM (
SELECT week, Convert(varchar(10),startDate,120) value
FROM WkResult
) t
PIVOT (
MAX(value)
FOR week IN ('+@columns+')
) p
UNION ALL
SELECT *
FROM (
SELECT week, Convert(varchar(10),qty) value
FROM WkResult
) t
PIVOT (
MAX(value)
FOR week IN ('+@columns+')
) p
UNION ALL
SELECT *
FROM (
SELECT week, Convert(varchar(10),Total) value
FROM WkResult
) t
PIVOT (
MAX(value)
FOR week IN ('+@columns+')
) p'
PRINT @sql
EXEC(@sql)
SELECT *
FROM (
SELECT week, Convert(varchar(10),startDate,120) value
FROM #WkResult
) t
PIVOT (
MAX(value)
FOR week IN ([wk10],[wk11],[wk12],[wk13],[wk14],[wk15],[wk16])
) p
UNION ALL
SELECT *
FROM (
SELECT week, Convert(varchar(10),qty) value
FROM #WkResult
) t
PIVOT (
MAX(value)
FOR week IN ([wk10],[wk11],[wk12],[wk13],[wk14],[wk15],[wk16])
) p
UNION ALL
SELECT *
FROM (
SELECT week, Convert(varchar(10),Total) value
FROM #WkResult
) t
PIVOT (
MAX(value)
FOR week IN ([wk10],[wk11],[wk12],[wk13],[wk14],[wk15],[wk16])
) p
wk10 wk11 wk12 wk13 wk14 wk15 wk16
---------- ---------- ---------- ---------- ---------- ---------- ----------
2015-03-02 2015-03-09 2015-03-16 2015-03-23 2015-03-30 2015-04-06 2015-04-13
1000 800 1100 900 1300 1500 2000
1200.0000 900.0000 1150.0000 1020.0000 1380.0000 2300.0000 3960.0000