SQL查询以查找某些行中的不匹配字段

时间:2017-10-19 12:20:12

标签: sql-server

我的SQL Server表是这样的:

ProductRef    ShopID    ShopRef
--------------------------------
ABC              1        bla
ABC              2        
ABC              3        bla
DEF              1        rhu
DEF              2        rhu
XYZ              1        barb
XYZ              2        baxb
XYZ              3        barb

对于同一产品的所有行,商店参考应该相同。

我需要找到的是所有店铺参考所有商店都不相同的产品(忽略无关紧要的空白商店参考,可以认为它们匹配)。

所以在上面的例子中我想要返回XYZ。 ABC& DEF很好。 所有XYZ行或只是“XYZ”都可以工作。

我无法找到正确的方法对其进行分组以获得此结果,到目前为止我所管理的最好的是每个产品匹配的ShopRef字段的数量,这没有用,因为这可能会有所不同,但仍然可以

2 个答案:

答案 0 :(得分:0)

SELECT ProductRef
FROM table
WHERE COALESCE(LTRIM(RTRIM(ShopRef)), '') <> ''
GROUP BY ProductRef
HAVING MAX(ShopRef) <> MIN(ShopRef)

答案 1 :(得分:0)

试试这个:

SELECT ProductRef
FROM MyTable
GROUP BY ProductRef
HAVING MAX(ShopRef) <> MIN(ShopRef)
相关问题