0
我們正在創建一個關於計費和庫存維護的WPF應用程序項目。在數據庫中,一個表tbl_puv
包含購買詳細信息產品ID,數量和規模ID,收據表tbl_receipt
收據被放入所需數量。每次收據後,我應該更新產品剩餘數量的tbl_puv
。SQL Server:連接三張表
這是我使用的查詢:
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)
問題:獲得的數量(數量)和它的差 未決= 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
請告訴我們你現在得到的結果,他的結果你實際上想要 –
我想,你缺少tbl_puv和tbl_puvd表之間的映射。提及表格定義以獲得更多的說明。 –
您是否介意閱讀您的問題並格式化您的代碼?根據讀者的解釋,是「購買詳細產品ID」一個字段還是三個或四個分開的字段? – Marco