Sql 如何连接两个select查询的结果

Sql 如何连接两个select查询的结果,sql,Sql,我有两个表table1和table2 ItemId作为表2的键 表1 |itemsId | Item | Quantity| ---------------------------- 1 | item | 20 表2 |ItemId | Status | Quantity --------------------------- 1 |Item Out| 5 我减去表1-表2中的数量,并在名为“现在保留”的新列中赋值。问题是我想将结果列与表1和表2连接起来 ItemId | Item |

我有两个表table1和table2 ItemId作为表2的键

表1

|itemsId | Item | Quantity|
----------------------------
1 | item | 20 
表2

|ItemId | Status | Quantity 
---------------------------
1 |Item Out| 5
我减去表1-表2中的数量,并在名为“现在保留”的新列中赋值。问题是我想将结果列与表1和表2连接起来

ItemId | Item | Quantity | Remaining |
---------------------------------------
1 | item | 20 | 15
我试过这个

SELECT *
FROM (select i.ItemsId,i.Date,s.[Item Name],i.Quantity,i.[Recieved By],i.[From],i.[Reference No]
      from Store s inner join
           ItemsMovement i
           on s.ItemsId = i.ItemsId
      group by i.ItemsId
     ) T1 INNER JOIN 
     (select SUM(a.Quantity - b.Quantity) AS Remaining
      FROM Store a inner join
           ItemsMovement b
           on a.ItemsId = b.ItemsId 
      where b.Status ='Items In'
      group by a.ItemsId
     ) T2

我认为,通过条件聚合,您可以更轻松地完成自己的任务:

select i.ItemsId, i.Date, s.[Item Name], i.Quantity, i.[Recieved By],
       i.[From],i.[Reference No],
       sum(case when i.Status = 'Items In' then s.Quantity - i.Quantity end) as remaining
from Store s inner join
     ItemsMovement i
     on s.ItemsId = i.ItemsId
group by i.ItemsId;

我认为,通过条件聚合,您可以更轻松地完成自己的任务:

select i.ItemsId, i.Date, s.[Item Name], i.Quantity, i.[Recieved By],
       i.[From],i.[Reference No],
       sum(case when i.Status = 'Items In' then s.Quantity - i.Quantity end) as remaining
from Store s inner join
     ItemsMovement i
     on s.ItemsId = i.ItemsId
group by i.ItemsId;

您的SQL格式不正确。
JOIN
没有
on
子句。您的SQL格式不正确。
JOIN
没有
on
子句。谢谢,但我尝试使用此代码抛出此错误“列'ItemsMovement.Date'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。”Gordon Linoff感谢您的帮助,代码运行良好谢谢,但我尝试使用此代码抛出此错误“列'ItemsMovement.Date'在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中。”Gordon Linoff感谢您的帮助,代码运行良好