- 项目清单
我正在尝试加入两个表,过滤掉具有唯一值的 item_id,并显示包含相同值的任何 item_id。我正在使用的 SQL 语句似乎只工作了一半,除了它返回我认为我知道这个数字的所有内容,但我猜不是。
这句话拉动了一切。
--join two tables filtering out and item_id that has a unique value and displaying any
--item_id that contains the same value
SELECT inv_bin.bin, inv_bin.quantity, inv_bin.inv_bin_uid, inv_bin.inv_mast_uid,
inv_mast.inv_mast_uid,inv_mast.item_desc, inv_mast.item_id
FROM inv_bin left join inv_mast on inv_bin.inv_mast_uid = inv_mast.inv_mast_uid
WHERE inv_mast.item_id in ( SELECT item_id from inv_mast
GROUP BY item_id HAVING COUNT (item_id) >= 1 )
AND inv_bin.bin not like 'rec'
AND inv_bin.bin not like 'DEFBIN'
AND inv_bin.bin not like 'DEFAULTBIN'
ORDER BY inv_mast.item_id;
但是,如果我'='
从 中删除,Group By item_id Having COUNT (item_id) >= 1 )
则查询不会返回任何内容。我知道我在 item_id 列中有相同的数据:
bin item_id
07C-C15 002-09-121
Z07-OS 002-09-121
无论如何,有人可以告诉我哪里出了问题,在我看来,使用 > 1 会以相同的值显示 item_id 中的所有内容。
谢谢,布雷特
bin quantity inv_bin_uid inv_mast_uid inv_mast_uid item_id
07C-C15 0 135 70 70 002-09-121
Z07-OS 10 130277 70 70 002-09-121
04C-B21 0 354 289 289 032-36-26
04C-B04 0 356 291 291 032-38-26
02A-B01 2 101 48 48 5-40050720L
Z29-SKID00 0 117 48 48 5-40050720L
这是产生所需结果的完成语句。
/*join two tables filtering out and item_id that has a unique value and displaying any
item_id that contains the same value */
SELECT inv_bin.bin, inv_bin.quantity, inv_bin.inv_bin_uid, inv_bin.inv_mast_uid,
inv_mast.item_desc, inv_mast.item_id
from inv_bin left join inv_mast on inv_bin.inv_mast_uid = inv_mast.inv_mast_uid
where inv_bin.inv_mast_uid in (
SELECT inv_mast_uid FROM inv_bin
WHERE inv_bin.bin NOT IN ('REC','DEFBIN','DEFAULTBIN')
GROUP BY inv_mast_uid HAVING COUNT(inv_mast_uid)>1 )
and inv_bin.bin not like 'rec'
and inv_bin.bin not like 'defbin'
and inv_bin.bin not like 'Defaulbin'
/*look up filtering out ids based on not like statements*/
ORDER BY inv_bin.inv_mast_uid;
再次感谢您的所有帮助。