我有一个表StudentBillDetails
,在此表中,数据每年保存一次,yrid
被引用到其他表中。现在我遇到了问题。我想检索不匹配的记录,如下所述。
Stid BillNo Yrid
1 525 3
1 525 1
1 525 4
2 443 4
2 442 1
2 443 3
在上面给出的表结构中,您可以看到三年StId 1
具有相同的值,但StId 2
在Yrid 1
中存在冲突。所以我想得到这些类型的记录。
答案 0 :(得分:1)
如果您只想标记有冲突的Stid
值,则以下简单查询应该有效:
SELECT Stid
FROM yourTable
GROUP BY Stid
HAVING COUNT(DISTINCT BillNo) > 1
如果您想要整个记录,可以尝试将表格加入上述查询:
SELECT t1.*
FROM yourTable t1
INNER JOIN
( SELECT Stid FROM yourTable GROUP BY Stid HAVING COUNT(DISTINCT BillNo) > 1 ) t2
ON t1.Stid = t2.Stid