Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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查询_Sql_Sql Server - Fatal编程技术网

比较两个查询中的两个子集的SQL查询

比较两个查询中的两个子集的SQL查询,sql,sql-server,Sql,Sql Server,我需要将728类型的所有订单与每个客户的所有其他订单类型进行比较,以找到订单类型728中有任何项目不在至少一个其他订单类型中的任何客户,或者如果任何其他订单类型中有任何项目不在该客户的订单类型728中 Customers OrderTypes Items Customer 2245 OrderType 728 Item PT Item Custom I

我需要将728类型的所有订单与每个客户的所有其他订单类型进行比较,以找到订单类型728中有任何项目不在至少一个其他订单类型中的任何客户,或者如果任何其他订单类型中有任何项目不在该客户的订单类型728中

    Customers
        OrderTypes
            Items

    Customer 2245
        OrderType 728
            Item PT
            Item Custom
            Item Special
        OrderType 234
            Item PT
            Item Custom
        OrderType 300
            Item PT
            Item Custom
        OrderType 999
            Item PT
我进行了查询,因此我有一个订单类型为728的表变量(带有客户和订单类型数据),@Items_728

我已经查询过了,所以我有一个表变量,它包含除728之外的所有订单类型(带有客户和订单类型数据),@Items\u Not728

我想获得每个客户的所有728个订单类型的结果集,这些订单类型中的项目不属于该客户的其他订单类型

    Customers
        OrderTypes
            Items

    Customer 2245
        OrderType 728
            Item PT
            Item Custom
            Item Special
        OrderType 234
            Item PT
            Item Custom
        OrderType 300
            Item PT
            Item Custom
        OrderType 999
            Item PT
示例:OrderType 728的特殊项在至少一个其他OrderType中找不到

我想获得每个客户的所有订单类型的结果集,这些客户的项目不属于728订单类型

示例:OrderType 999没有自定义项

我希望将此作为一个基于集合的操作来完成,而不是创建一个光标并逐个客户地遍历,手动比较订单集合,注意任何差异并保存每个客户编号。这看起来效率极低,而且肮脏不堪

我看过其他的StackOverflow问题,但没有注意到任何看起来像这样的问题。如果您有任何有用的建议,我们将不胜感激。

结果集#1:728s,不在其他订单类型中的项目:

SELECT i.Cust, i.Item
FROM @Items_728 i
WHERE NOT EXISTS (SELECT 1 FROM @Items_Not728 WHERE Cust = i.Cust AND Item = i.Item)
ORDER BY 1, 2
第二个要求的结果集和示例不一致,所以未完成。

您的第二个示例(999没有自定义)在描述方面似乎没有意义。请你澄清一下好吗。