在sql中连接多个表以用于库存维护应用程序

时间:2017-08-23 12:40:31

标签: sql

表格的列结构如下:

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_PIVDtbl_GRND表的

tbl_PIVD.pivID = tbl_GRN.pivIDtbl_PIVD.prodID = tbl_GRND.prodID

在使两个刻度相等之后进行减法,使用函数ConvertScale

转换刻度

如何加入以下查询

SELECT PID.Qty, GRND.Qty FROM tbl_PIVD PID INNER 
JOIN tbl_GRND GRND on 
PID.prodId = GRND.prodId 


SELECT *  FROM tbl_PIVD PID INNER JOIN 
tbl_GRN GRN ON PID.pivId = GRN.pivID   
GRN.pivID=10609

1 个答案:

答案 0 :(得分:0)

我希望以下查询有用。

SELECT ConvertScale(PD.Qty, PD.ScaleID, P.ScaleID) -  
ConvertScale(GD.Qty, GD.ScaleID, P.ScaleID) as 'PendingQty'
FROM tbl_PIVD PD
INNER JOIN tbl_Prod P ON PD.ProdID = P.ProdID
INNER JOIN tbl_GRN G ON PD.pivID = G.pivID
INNER JOIN tbl_GRND GD ON G.gID = GD.gID AND PD.prodID = GD.prodID