我们正在创建一个关于计费和库存维护的WPF应用程序项目。在数据库中,表tbl_puv
包含购买详细信息产品ID,数量和比例ID,收据表tbl_receipt
收据是为所需数量而设的。每次收到后,我应该更新产品剩余数量的tbl_puv
。
这是我使用的查询:
SELECT
Pending = (([Convertscale](tbl_puv.Quantity, tbl_puvd.ScaleId, p.StandardUnit)) - ([Convertscale](tbl_reciptdetails.Quantity, tbl_reciptdetails.Scale, p.StandardUnit)))
FROM
dbo.tbl_Product p
INNER JOIN
dbo.tbl_puvd ON p.ProductId = dbo.tbl_puv.ProductId
INNER JOIN
dbo.tbl_reciptdetails ON tbl_reciptdetails.ProductId = tbl_puvd.ProductId
tbl_puv.IsActive = 'True' AND tbl_receiptdetails.IsActive = 'True' AND tbl_puvd.PurchaseId = 10609
其中Convertscale
是标量值函数,用于在减法之前将乘积单位转换为标准单位
在上面的查询中,我的表是:
tbl_puv
---购买表tbl_puvd
---购买明细表tbl_receiptdetails
---收据明细表tbl_product
---产品表我得到多个结果请帮我查询....谢谢
表格的列结构如下:
tbl_PIVD = pivID | prodID | Qty | ScaleID
tbl_GRN = gID | pivID
tbl_GRND = grndID | gID | prodID | Qty | ScaleID
tbl_prod = prodID | ScaleID(SIunit)
问题:获取数量(数量)及其差异 pending = ConvertScale(tbl_PIVD.Qty,tbl_PIVD.ScaleID,tbl_prodID.ScaleID) - ConvertScale(tbl_GRND.Qty,tbl_GRND.ScaleID,tbl_prodID.ScaleID) 来自tbl_PIVD和tbl_GRND表,其中tbl_PIVD.pivID = tbl_GRN.pivID和 tbl_PIVD.prodID = tbl_GRND.prodID。在使两个比例相等之后进行减法,使用函数ConvertScale
转换比例答案 0 :(得分:0)
我尝试编辑您的查询:
declare @pending as numeric(18,2)
SELECT
top 1 @pending = isnull((([Convertscale](tbl_puv.Quantity, tbl_puvd.ScaleId,
p.StandardUnit)),0.00) - isnull(([Convertscale](tbl_reciptdetails.Quantity, tbl_reciptdetails.Scale, p.StandardUnit))),0.00)
FROM
dbo.tbl_Product p
INNER JOIN
dbo.tbl_puvd ON p.ProductId = dbo.tbl_puv.ProductId
INNER JOIN
dbo.tbl_reciptdetails ON tbl_reciptdetails.ProductId = tbl_puvd.ProductId
where
tbl_puv.IsActive = 'True' AND tbl_receiptdetails.IsActive = 'True' AND tbl_puvd.PurchaseId = 10609
select @pending