Sql 如何连接两个select查询的结果
我有两个表table1和table2 ItemId作为表2的键 表1Sql 如何连接两个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 |
|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感谢您的帮助,代码运行良好