【发布时间】:2011-09-08 13:00:48
【问题描述】:
我正在寻求有关设计简单枢轴的帮助,以便我可以将其链接到查询的其他部分。
我的数据是这样的
物品表
如果我运行Select * from items,下面是我的表格
ITEM Weight
12345 10
12345 11
654321 50
654321 20
654321 100
此表中有数百个项目,但每个项目代码只会有 每个最多 3 个重量记录。
我想要想要的输出
ITEM Weight_1 Weight_2 Weight_3
12345 10 11 null
654321 50 20 100
不胜感激任何建议, 我玩过枢轴,但每个后续项目都将权重设为 4、5、6、7 等 而不是从每个项目的 weight1 开始。
谢谢
更新
以下是我目前使用的,
SELECT r.*
FROM (SELECT 'weight' + CAST(Row_number() OVER (ORDER BY regtime ASC)AS
VARCHAR(10))
line,
id,
weight
FROM items it) AS o PIVOT(MIN([weight]) FOR line IN (weight1, weight2,
weight3)) AS r
【问题讨论】:
-
能否请您提供一些您尝试过的示例?
-
下面是我目前使用的,select r.* from (select 'weight' + CAST( ROW_NUMBER() OVER (order by regtime asc)as varchar(10)) Line, id,它的重量)作为 O Pivot(MIN([weight]) FOR Line IN (weight1, weight2, weight3)) AS r
-
@Robert,在发布新代码时,请更新您的问题。不要在 cmets 中发布代码。我为你这样做了,但请确保你以后也这样做。
标签: sql sql-server pivot