Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.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 - Fatal编程技术网

Sql 如何从两个不同的表中计算求和和和减法

Sql 如何从两个不同的表中计算求和和和减法,sql,sql-server,Sql,Sql Server,我有两个表“tbl_In_Details”和“tbl_Out_Details”,用于tbl_In_Details sample data for tbl_In_Details ID Item_Name Rate Quantity Source_company 1 wire 10 4 2020-04-21 22:47:29.083 2 Tea 4 20 2020-04-21

我有两个表“tbl_In_Details”和“tbl_Out_Details”,用于tbl_In_Details

sample data for tbl_In_Details

ID  Item_Name   Rate    Quantity    Source_company  
1   wire         10        4        2020-04-21 22:47:29.083 
2   Tea          4         20       2020-04-21 22:47:52.823
    
Sample data for tbl_Out_Details

ID  Item_Name   Quantity    Created_Date
1     wire        1       2020-04-21 22:48:48.233   
2     wire        2       2020-04-21 22:50:16.367   
3     Tea         2       2020-04-21 23:48:39.94
现在我想计算当前库存,即(传入-传出)作为当前库存 我尝试了这种方式,但没有得到正确的记录。请指导我需要修改查询的位置:

Select O.Item_Name, 
sum(CAST(I.Quantity AS INT))as Incoming_Quantity , 
 SUM(CAST(o.Quantity as int)) as Outgoing_Quantity , 
(sum(CAST(I.Quantity AS INT)) - SUM(CAST(o.Quantity AS INT))) As Current_Stock
from tbl_In_Details I inner join tbl_Out_Details O
ON I.Item_Name = o.Item_Name group by O.Item_Name
我的输出应该是

Item_Name   Incoming_Quantity   Outgoing_quantity   Current_Stock
  Wire          4                  3                      1
  Tea           20                 2                      18

使用
union all
和聚合:

select item_name, sum(in_quantity) as in_quantity, sum(out_quantity) as out_quantity,
       sum(in_quantity) - sum(out_quantity) as in_stock
from ((select item_name, quantity as in_quantity, 0 as out_quantity
       from incoming
      ) union all
      (select item_name, 0, quantity 
       from outgoing
      ) 
     ) io
group by item_name;
其显示的“多部件标识符”o.Quantity“无法绑定。”