首页 > 解决方案 > SQL Server:通过连接两个表来创建视图并在新列中找到两列的总和

问题描述

我有两个表StockInStockOut,由它们的 ID 号标识。现在我想创建一个视图来查找手头的库存在哪里StockIn.Id = StockOut.Id

这是我一直在尝试但无法得到结果的 SQL 代码:

CREATE VIEW [dbo].[StockHand_Total] 
AS 
    SELECT 
        i.Id,
        i.ProductName,
        i.Rate,
        i.Qty,
        So.QtyOut,
        i.Amount,
        x.Balance
    FROM
        dbo.StockIn i 
    JOIN
        StockOut So ON i.Id = So.Id

    SELECT Balance = SUM(Qty - QtyOut)   
GO

标签: sql-servertsqlview

解决方案


你可以使用:

CREATE VIEW [dbo].[StockHand_Total] 
AS
    SELECT 
        i.Id,
        i.ProductName,
        i.Rate,
        i.Qty,
        So.QtyOut,
        i.Amount,
        Balance = SUM(COALESCE(i.Qty, 0) - COALESCE(so.QtyOut, 0)) OVER(PARTITION BY i.id)
    FROM
        dbo.StockIn i 
    LEFT JOIN
        StockOut So ON i.Id = So.Id 

推荐阅读