0

我需要为每个客户将所有类型为 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_Not728

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

示例:OrderType 728 具有在至少一个其他 OrderType 中找不到的特殊项目

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

示例:OrderType 999 没有自定义项目

我想将其作为基于集合的操作来执行,而不是创建一个光标并逐个客户遍历它,手动比较订单集,注意任何差异并保存每个客户编号。这似乎非常低效和肮脏。

我查看了其他 StackOverflow 问题,但没有注意到任何看起来像这样的东西。任何有用的建议将不胜感激。

4

1 回答 1

0

结果集 #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

第二个所需的结果集和示例不同意,所以没有完成。

于 2013-09-16T21:40:08.460 回答