2014-11-01 62 views
0
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 

的減值我的要求是,我想減d.Use_Qtym.Item_Qty如何獲得這兩個表和列

+0

顯示一些樣本數據??問題在哪裏? – 2014-11-01 10:56:10

+0

這是程序的一個功能。請把整件事情判斷一下。問題來自哪一行? – Ajay2707 2014-11-01 11:06:11

回答

0

檢查。您可以通過

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 
+0

是否可以在外部查詢中使用內部查詢的別名來獲取數據 – 2014-11-01 15:49:31