我有一个包含三列的单个表格,' id',' number'和'交易。'每个id应仅绑定到一个数字,但在不同的事务值下可能会在表中多次出现。我已经无法开发一个查询,该查询将返回单个ID共享多个数字的情况(并在报告中显示ID和数字)。我不希望通过查询删除这些值,我只需要查看值。见下面的例子:
这里有一个屏幕截图示例:http://i591.photobucket.com/albums/ss355/riggins_83/table2_zps5509f3cf.jpg我很感谢您的帮助,我已经尝试了这里发布的所有代码,但它还没有给我输出我正在寻找的输出。如屏幕截图所示,相同的ID号和号码可能会在表格中多次出现不同的交易号码,不应该出现的是第1行和第2行的内容(具有相同ID号的两个不同号码)。 ID号是一个值,该值应始终与事务仅链接到该行的相同Number相关联。我试图生成每个号码的输出,这些号码共享一个ID号码(如果可能的话,还有共享ID号码)。
Test IDNumber Number Transaction
1 31 1551 5
2 31 1553 7
3 32 1701 8
4 33 1701 9
5 33 1701 10
6 33 1701 11
7 39 1885 12
我需要的输出结果:
IDNumber Number
31 1551
31 1553
在两个(或可能更多)数字之间共享ID号的情况下,此输出显示数字(和ID号)。我知道表中有些情况下,许多号码之间共享一个ID号。
非常感谢任何帮助!
答案 0 :(得分:2)
SELECT *
FROM thetable t0
WHERE EXISTS (
SELECT *
FROM thetable t1
WHERE t1.id = t0.id
-- Not clear from the question if the OP wants the records
-- to differ by number
-- AND t1.number <> t1.number
-- ... or by "transaction"
AND t1."transaction" <> t0."transaction"
-- ... or by either ???
-- AND (t1.number <> t1.number OR t1."transaction" <> t0."transaction")
);
答案 1 :(得分:1)
SELECT IDNumber, Number
FROM YourTable
WHERE IDNumber IN (
SELECT IDNumber
FROM YourTable
GROUP BY IDNumber
HAVING COUNT(DISTINCT number) > 1
)
子查询返回所有IDNumber超过1的IDNumber。然后主查询返回每个IDNumber的所有数字。