我正在运行一个返回类似内容的查询。
http://i.imgur.com/BMAaFB6.png
这是我目前的查询:
SELECT i.prtnum, i.lodnum, i.lotnum, i.untqty, i.ftpcod, i.invsts
FROM inventory_view i, locmst m
WHERE i.stoloc = m.stoloc
AND m.arecod = 'PART-HSY'
ORDER BY i.prtnum
如果您正在查看图片,我需要查询排除第3行等行。 (00005-86666-000)
答案 0 :(得分:0)
您没有提供太多理由来解释为什么要排除该行,但您可以按照prtnum
排除,就像您要求的那样:
SELECT i.prtnum, i.lodnum, i.lotnum, i.untqty, i.ftpcod, i.invsts
FROM inventory_view i, locmst m
WHERE i.stoloc = m.stoloc
AND m.arecod = 'PART-HSY'
AND i.prtnum NOT IN(SELECT i2.prtnum FROM inventory_view i2, locmst m2
WHERE i2.stoloc = m2.stoloc AND m2.arecod = 'PART-HSY'
GROUP BY i2.prtnum HAVING COUNT(*) = 1)
ORDER BY i.prtnum
答案 1 :(得分:0)
如下:
SELECT i.prtnum,
i.lodnum,
i.lotnum,
i.untqty,
i.ftpcod,
i.invsts
FROM inventory_view i,
locmst.m
WHERE i.stoloc = m.stoloc
AND m.arecod = 'PART-HSY'
AND i.prtnum IN
(
SELECT prtnum
FROM inventory_view j
HAVING count(prtnum)>1
GROUP BY prtnum
)
答案 2 :(得分:0)
SELECT i.prtnum, i.lodnum, i.lotnum, i.untqty, i.ftpcod, i.invsts
FROM inventory_view i, locmst m
WHERE i.stoloc = m.stoloc
AND EXISTS (SELECT * FROM Inventory_view k
WHERE k.prtnum == i.prtnum AND k.id <> i.id)
AND m.arecod = 'PART-HSY'
ORDER BY i.prtnum
其中i.id/k.id是您的表格ID。它效率有点低,但它应该可以工作。
答案 3 :(得分:0)
有几种方法可以做你所要求的。如果我理解正确,它只是排除在给定列中具有值的行,这些行在表中只显示一次。如果是这样,你可以这样做:
SELECT i.prtnum, i.lodnum, i.lotnum, i.untqty, i.ftpcod, i.invsts
FROM inventory_view i
JOIN locmst m ON i.stoloc = m.stoloc AND m.arecod = 'PART-HSY'
JOIN inventory_view i1 ON i1.prtnum = i.prtnum AND i1.lodnum != i.lodnum
ORDER BY i.prtnum
此方法将确保返回的行具有与同一表中其他记录的prtnum匹配的prtnum。我假设lodnum是你的形象的许可证号。