我在SQL Server中有两个表,一个是PO RECEIPT
表,另一个是Move Order
表。在SQL Server中编写VIEW需要帮助
我需要写一个查询插入数据到Receipt
表,它工作正常。收据编号在Receipt
表中将是唯一的,因为它是主键和自动增量,例如对于Receipt
编号1我收到2000个数量(它是一列)。
如果我想将500个移动到另一个移动,并且下一个500个移动到相同的收据编号。现在我想写一个VIEW,将Move Order
表中的移动数量加起来组成Receipt Number
,并将从Receipt
表中的收到数量列中减去此数量。
目前我写的这个视图对于相同的Receipt Number
工作正常,但是当我们在Move Order
表中有不同的Receipt Number
时,它会生成一个错误。该视图是
select distinct
[5_PO_RECEIPT_TABLE_DATABASE].[Part Number],
[5_PO_RECEIPT_TABLE_DATABASE].[Receipt Number],
(select sum([Move_Order].[Move Quantity])
from [Move_Order]
group by [Move_Order].[Receipt Number]),
[5_PO_RECEIPT_TABLE_DATABASE].[Quantity Received] + [Move_Order].[Move Quantity] as TotalQuantity
from
[5_PO_RECEIPT_TABLE_DATABASE]
inner join
[Move_Order] on [5_PO_RECEIPT_TABLE_DATABASE].[Receipt Number] = [Move_Order].[Receipt Number]
由上述观点产生的误差是
子查询返回大于1倍的值。当子查询遵循=,!=,<,< =,>,> =或当子查询用作表达式时,这是不允许的。