我尝试了几个小时,读了许多帖子,但仍然不知道如何处理此请求:

我有一个这样的表:

+------+------+
|ARIDNR|LIEFNR|
+------+------+
|1     |A     |
+------+------+
|2     |A     |
+------+------+
|3     |A     |
+------+------+
|1     |B     |
+------+------+
|2     |B     |
+------+------+

我想选择使用不同LIEFNR发生多次的ARIDNR。

输出应该是这样的:
+------+------+
|ARIDNR|LIEFNR|
+------+------+
|1     |A     |
+------+------+
|1     |B     |
+------+------+
|2     |A     |
+------+------+
|2     |B     |
+------+------+

最佳答案

这应该做到:

SELECT *
FROM YourTable
WHERE ARIDNR IN (
    SELECT ARIDNR
    FROM YourTable
    GROUP BY ARIDNR
    HAVING COUNT(*) > 1
)

这个想法是使用内部查询来识别具有ARIDNR值且在数据中出现1次以上的记录,然后根据该组值从同一张表中获取所有列。

关于sql - 选择另一列中具有相同ID但值不同的行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21162812/

10-13 02:51