0

我有这个用于检索所有项目的 SQL

SELECT A.item_code,A.description,A.uom, A.open_stock, B.recd_total, C.issue_qty
FROM chem_master as A
LEFT JOIN ( SELECT item_code, sum(recd_qty) as recd_total
from chem_reciepts GROUP BY item_code) as B on A.item_code=B.item_code
LEFT JOIN(SELECT item_code, sum(iss_qty) as issue_qty
from chem_issue GROUP BY item_code) as C on A.item_code=C.item_codeand 

返回的数据是

Item_code Description                      unit op.stock recd_total issue_qty

25139     ALUMINIUM OXIDE ACTIVE NEUTRAL   GM       0         0          0
54006     L-ASCORBIC ACID                  GM       0         0          0
AC001     ACETIC ACID GLACIAL              LTR      0         14         2
AC002     ACETONE AR                       LTR      0         0          0
AC005     ACACIA POWDER                    GM       0         0          0

我只想要那些记录open_stock + recd_total - issue_qty = 0

如何修改sql?

4

3 回答 3

2

您可以将having您提到的条件添加到查询中(在查询结束时)。
如下所示:

HAVING op.stock+recd_total-issue_qty=0
于 2013-09-12T06:02:45.437 回答
0

试试这个

SELECT q.*, (q.stock+(q.recd_total-q.issue_qty)) as resultant FROM (
SELECT A.item_code,A.description,A.uom, A.open_stock, B.recd_total, C.issue_qty
FROM chem_master as A
LEFT JOIN ( SELECT item_code, sum(recd_qty) as recd_total
from chem_reciepts GROUP BY item_code) as B on A.item_code=B.item_code
LEFT JOIN(SELECT item_code, sum(iss_qty) as issue_qty
from chem_issue GROUP BY item_code) as C on A.item_code=C.item_codeand
) q  HAVING q.resultant =0
于 2013-09-12T06:08:46.767 回答
0

使用以下查询

SELECT A.item_code,A.description,A.uom, A.open_stock, B.recd_total, C.issue_qty
FROM chem_master as A
LEFT JOIN ( SELECT item_code, sum(recd_qty) as recd_total
from chem_reciepts GROUP BY item_code) as B on A.item_code=B.item_code
LEFT JOIN(SELECT item_code, sum(iss_qty) as issue_qty
from chem_issue GROUP BY item_code) as C on A.item_code=C.item_codeand 
having op.stock+recd_total-issue_qty = 0;
于 2013-09-12T06:14:37.033 回答