Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.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 如何检查仅为一个值绑定到其相关表的id_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 如何检查仅为一个值绑定到其相关表的id

Sql 如何检查仅为一个值绑定到其相关表的id,sql,sql-server,tsql,Sql,Sql Server,Tsql,作为测试的一部分,我有两个表需要检查UCCID是否只绑定到一个BUYID。UCCID对于我的表应该是唯一的。但是BUyid可以有多个UCCID。但是UCCID应该绑定到唯一的(只有一个)BUYID 我尝试了下面的查询,但我没有得到我正在调查的结果?有人能帮忙吗?我希望下面的查询返回0,以便UCCID绑定到单个BUYID SELECT COUNT(*) FROM dbo.activityBase ab JOIN (SELECT eb.BuyID FROM dbo.Equipme

作为测试的一部分,我有两个表需要检查UCCID是否只绑定到一个BUYID。UCCID对于我的表应该是唯一的。但是BUyid可以有多个UCCID。但是UCCID应该绑定到唯一的(只有一个)BUYID

我尝试了下面的查询,但我没有得到我正在调查的结果?有人能帮忙吗?我希望下面的查询返回0,以便UCCID绑定到单个BUYID

  SELECT COUNT(*) FROM dbo.activityBase ab
        JOIN (SELECT eb.BuyID FROM dbo.EquipmentBase eb
        WHERE eb.UccID IS NOT NULL
        GROUP BY eb.BuyID
        HAVING COUNT(eb.BuyID)=1)c
        ON c.BuyID = ab.BuyID

如果我理解正确(并且您的问题不是非常清楚),如果您想识别
UccID
的任何值,并且这些值的记录中存在多个不同的
BuyID
(在两个表中),您可以使用:

SELECT UccId, COUNT(*)
FROM
(
    SELECT DISTINCT BuyID, UccID FROM EquipmentBase
    UNION
    SELECT DISTINCT BuyID, UccID FROM activityBase
) AS DistinctCombos
GROUP BY UccId HAVING COUNT(*) > 1

这将使用
FROM
子句中的子查询返回两个表中两个字段的所有组合,然后检查这些结果以找到任何
UccID
值,这些值具有多个不同的
BuyID
值。

您可以选择“UccID对于我的表应该是唯一的”对于这两个表,您能提供示例数据吗?您希望实现什么?
SELECT UccId, COUNT(*)
FROM
(
    SELECT DISTINCT BuyID, UccID FROM EquipmentBase
    UNION
    SELECT DISTINCT BuyID, UccID FROM activityBase
) AS DistinctCombos
GROUP BY UccId HAVING COUNT(*) > 1