【发布时间】:2017-06-22 15:33:56
【问题描述】:
添加列 通过从 sql Server 中的另一个表中选择所有项目来选择表。 我有这样的拖车表:
表1
ID || Title
1 || Ruler
2 || Book
3 || Pen
. || .
. || .
. || .
表2
itemID || Price || Date
1 || 200 || 2016-01-21
2 || 30 || 2017-03-01
3 || 27 || 2014-06-09
. || .
. || .
. || .
表格结果
Date || Ruler || Book || pen || … more
2016-01-21 || 200 || || ||
2017-03-01 || || 30 || ||
2014-06-09 || || || 27 ||
.
.
.
没用
Declare @cols1 varchar(max)
Declare @query nvarchar(max)
Select @cols1 = stuff((select distinct ','+QuoteName([Title]) from table1 for xml path('')),1,1,'')
Set @Query = ' Select * from (
Select t2.[Date], t1.[Title], t2.Price from table2 t2 inner join table1 t1
on t2.ItemId = t1.Id ) a pivot (max([Price]) for [Title] in ( ' +@cols1 + ' ) ) p '
exec sp_executeSql @query
它返回最高价格,但我想要这样的最后价格:
pivot (Select ([Price]) from table2 order by Date desc for [Title] in ( ' +@cols1 + ' ) ) p '
语法错误返回!?
【问题讨论】:
-
你从哪里得到
Table1.ID.*的语法?尝试从当前查询中删除.*。
标签: sql sql-server select