Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL基于另一列合并列_Sql_Sql Server_Join_Union - Fatal编程技术网

SQL基于另一列合并列

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

我有一个项目列表和两个位置(X和Y),这两个位置的项目数量不同。 因此,当有人订购一些商品时,可以从这两个位置中的任何一个提取商品

下面是我创建的“订单”表,但它显示了两个位置和可用库存的两列

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