sql-server - SQL Server:通过连接两个表来创建视图并在新列中找到两列的总和
问题描述
我有两个表StockIn
和StockOut
,由它们的 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
解决方案
你可以使用:
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
推荐阅读
- javascript - 使用 JavaScript 循环遍历 href
- reactjs - 为什么独立的 React Native 调试器显示未定义的 redux 状态?
- python - 如果前一个元素的偏移量等于下一个元素的起始点,则组合一个起始偏移元组列表
- excel - Excel 公式或规则或 vba 比较 2 个单元格并仅突出显示差异
- javascript - 在 node.js 中处理发布请求时遇到问题
- node.js - 如何使用流以块的形式发送 JSON 数据?
- bash - 创建一个自动脚本以在谷歌云存储中上传文件
- r - 如何使用 R 进行这个复杂的表连接?
- aws-cli - 为什么我的 kinesis put-records 命令不起作用?
- python - 在python中按顺序的N行分隔列