2017-10-19 9 views
0

私のSQL Serverのテーブルは次のようなものです:SQLクエリは

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 

店refは、同じ製品のすべての行で同じでなければなりません。

私が見つけ出す必要があるのは、すべてのショップでショップ参照が同じでない商品すべてです(ブランクショップの参考情報は無視されますが、一致すると見なすことができます)。

上記の例では、私はXYZを返したいと思っています。 ABC & DEFは問題ありません。 すべてのXYZ行または単に「XYZ」が機能します。

この結果を得るためにグループ化するのは適切な方法ではありません。これまで管理してきた最高のものは、製品ごとに一致するShopRefフィールドの数です。 OK。

答えて

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

グレート、あなた – Sparrowhawk

0

これを試してみてください:

SELECT ProductRef 
FROM MyTable 
GROUP BY ProductRef 
HAVING MAX(ShopRef) <> MIN(ShopRef) 
+0

感謝「問題ではありません空白の店の参照を無視して、彼らは考えることができるマッチング」 –

+1

はい、あなたは正しいです。あなたが私とまったく同じ解決策を与えることを防ぐために行を追加すると、 –