SQL基于另一列合并列
我有一个项目列表和两个位置(X和Y),这两个位置的项目数量不同。 因此,当有人订购一些商品时,可以从这两个位置中的任何一个提取商品 下面是我创建的“订单”表,但它显示了两个位置和可用库存的两列SQL基于另一列合并列,sql,sql-server,join,union,Sql,Sql Server,Join,Union,我有一个项目列表和两个位置(X和Y),这两个位置的项目数量不同。 因此,当有人订购一些商品时,可以从这两个位置中的任何一个提取商品 下面是我创建的“订单”表,但它显示了两个位置和可用库存的两列 ItemNumber Location Stock X Stock Y A X 12 32 B X 10 54 C
ItemNumber Location Stock X Stock Y
A X 12 32
B X 10 54
C X 5 23
A Y 54 30
C Y 65 36
D Y 76 23
E X 12 31
F X 32 19
F Y 72 40
我想在一列中看到的是请求位置的可用库存,而不是像我上面所做的那样在两列中同时显示位置和库存可用性。
我想看的结果表是
ItemNumber Location Avail Stock
A X 12
B X 10
C X 5
A Y 30
C Y 36
D Y 23
E X 12
F X 32
F Y 40
我就是想不起来怎么做。如果有人能帮忙或告诉我这是否可能,那就太好了
谢谢当表达式:
SELECT ItemNumber,
Location,
CASE WHEN Location = 'X' THEN [Stock X]
WHEN Location = 'Y' THEN [Stock Y]
END Avail_Stock
FROM Orders
您有
union
标记,因此:
SELECT ItemNumber,
Location,
[Stock X] AS Avail_Stock
FROM Orders
WHERE Location = 'X'
UNION
SELECT ItemNumber,
Location,
[Stock Y] AS Avail_Stock
FROM Orders
WHERE Location = 'Y'
嗨,我之前试过这个,但它给了我一个惊喜。“='附近的语法不正确”错误?它现在起作用了,我有一个案例位置。这就是我出错的原因。如果有帮助的话,别忘了把它标记为答案@SanjayaWeerakkody