Sql server 如何求两表和列的减法值
我的要求是我想减去Sql server 如何求两表和列的减法值,sql-server,Sql Server,我的要求是我想减去d。在m.Item\u Qty列中使用\u Qty,检查此项。您可以按添加组 CREATE PROCEDURE M_SelectStockIN @FarmID int, @ItemName varchar(50), @InType varchar(5) AS /* SET NOCOUNT ON */ select (sum((m.Item_Qty)) - sum(d.Use_Qty)) As InStock,
d。在m.Item\u Qty
列中使用\u Qty
,检查此项。您可以按添加组
CREATE PROCEDURE M_SelectStockIN
@FarmID int,
@ItemName varchar(50),
@InType varchar(5)
AS
/* SET NOCOUNT ON */
select
(sum((m.Item_Qty)) - sum(d.Use_Qty)) As InStock,
sum(d.Use_Qty) as total
from
MoryaSales m
inner join
DailyFarmEntry d on m.batchID = d.FarmID
where
m.batchID = @FarmID
and d.FarmID = @FarmID
and m.Tr_Type = @InType
and d.In_Type = @InType
and m.Item_Name = @ItemName
and d.ItemName = @ItemName
RETURN
更新这是供您理解的示例
CREATE PROCEDURE M_SelectStockIN
@FarmID int,
@ItemName varchar(50),
@InType varchar(5)
AS
BEGIN
/* SET NOCOUNT ON */
select (sum((m.Item_Qty)) - total) As InStock,
*
from
(
select
--you can add "batchID, tr_type" field to understand more.
--(sum((m.Item_Qty)) - sum(d.Use_Qty)) As InStock,
sum(d.Use_Qty) as total
from
MoryaSales m
inner join
DailyFarmEntry d on m.batchID = d.FarmID
where
m.batchID = @FarmID
and d.FarmID = @FarmID
and m.Tr_Type = @InType
and d.In_Type = @InType
and m.Item_Name = @ItemName
and d.ItemName = @ItemName
) a
END
显示一些示例数据??问题在哪里???这是程序的功能。请把整件事告诉法官。问题出现在哪一行?是否可以在外部查询中使用内部查询的别名来获取数据
declare @item table( id int IDENTITY(1,1) NOT NULL, name varchar(50), item_qty int)
declare @DailyFarmEntry table( id int IDENTITY(1,1) NOT NULL, itemid int, Use_Qty int)
insert into @item values ('a',10),('b', 20),('c', 30),('d', 40),('e', 50)--, ('a',10)
insert into @DailyFarmEntry values (1,2),(2, 4),(3,6),(4,8),(1,3)
select * from @item i
inner join @DailyFarmEntry df on i.id = df.itemid
--create procedure
--(
declare @itemid int = 1
--)
--as
select
name,
SUM(i.item_qty) as total_qty,
SUM(df.Use_Qty) as used_total_qty,
SUM(i.item_qty) - SUM(df.Use_Qty) as remain_qty
from
@item i
inner join @DailyFarmEntry df on i.id = df.itemid
--and itemid = @itemid
group by name