Suppose this table
I want to get all CODE
s where SIZEPOS
has the same value more than once…
So for the product
x
('194342-01', 10510, 5),
('194342-01', 10510, 7),
('194342-01', 10510, 9),
('194342-01', 10510, 11),
('194342-01', 10510, 13),
('194342-01', 10510, 15),
('194342-01', 10510, 5),
('194342-01', 10510, 19),
I would like to get '194342-01', 10510, 5
as SIZEPOS
5 appears twice. I achieved it with the following query
SELECT CODE, ITEID, COUNT(SIZEPOS) AS CNT
FROM @SUBSTITUTE
GROUP BY CODE, ITEID, SIZEPOS
HAVING COUNT(SIZEPOS) > 1;
but for some reason some of the returned rows appear twice, or even three times… What am I missing here?
Advertisement
Answer
I ended up using DISTINCT in my main query to avoid rows appearing more than once. So the query became like this:
SELECT DISTINCT CODE, ITEID, COUNT(SIZEPOS) AS CNT
FROM @SUBSTITUTE
GROUP BY CODE, ITEID, SIZEPOS
HAVING COUNT(SIZEPOS) > 1;
The rows that were appearing more than once, were rows that had different values with duplicates, so each row corresponded to every different duplicate value! This was easy but took me some time to figure out!