如何在同一个表中的sql server中获取不匹配的记录?

时间:2017-07-04 09:46:06

标签: sql-server

我有一个表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 2Yrid 1中存在冲突。所以我想得到这些类型的记录。

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