Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何获取sql server中同一表中的不匹配记录?_Sql Server - Fatal编程技术网

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

Sql server 如何获取sql server中同一表中的不匹配记录?,sql-server,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 在上述给定的表结构中,您可以看到三年来stid1具有相同的值,但st

我有一个表,上面写着
StudentBillDetails
,在这个表中,数据每年保存一次,
yrid
被引用到其他一些表中。现在我遇到了一个问题。我想检索不匹配的记录,如下所述

Stid    BillNo  Yrid
1        525    3
1        525    1
1        525    4
2        443    4
2        442    1
2        443    3

在上述给定的表结构中,您可以看到三年来
stid1
具有相同的值,但
stid2
Yrid 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