我有一张类似下面的表格。它是一个项目表及其相关的仓位。有些可能有多个bin位置,并且所有bin位置都有首选或主要bin位置。如何运行查询以将行转置为列并确定首选bin作为第一个?
Item Bin Preferred
A 2 Yes
A 3 No
A 1 No
B 3 Yes
B 4 No
输出应如下所示:
Item BinPreferred Bin2 Bin3
A 2 3 1
B 3 4 -
我尝试过使用PIVOT功能但没有运气。
谢谢,
答案 0 :(得分:0)
这应该是一个项目具有最大数量的3个箱子的情况的解决方案。 如果我是对的,它将选择主箱和另外两个不相等的箱子。
Select distinct
mainbin.item,
mainbin.bin as binpreffered,
bin2.bin as bin2,
bin3.bin as bin3
from table mainbin
left join table bin2 on (mainbin.id=bin2.id)
left join table bin3 on (mainbin.id=bin3.id)
where mainbin.preffered='Yes'
and bin2.preffered='No'
and bin3.preffered='No'
and bin2.id<>bin3.id;