How to Avoid Duplicates with multiple joins and multiple case statements
0
votes
1
answer
133
views
I have a query which has multiple joins and need case statements for multiple columns to get the correct data. Although I can manage to get the data, it creates a lot of duplicate rows. Seems like 1 row per case statement search.
As an example the code is below. Any help will be appreciated.
CREATE TABLE
#TABLE1 (id INT,
VAL INT,
SAMP NVARCHAR(20))
INSERT INTO #TABLE1
VALUES (1,1,'1-1'),(1,2,'1-2'),(1,3,'1-3'),(2,1,'2-1'),(2,2,'2-2'),(3,1,'3-1')
CREATE TABLE #TABLE2 (id INT, VAL INT)
INSERT INTO #TABLE2
VALUES (1,1),(1,2),(1,3),(2,1),(3,1)
SELECT
CASE WHEN T2.id = 2 AND T1.VAL = T2.VAL THEN T1.SAMP END
AS SAMPLE_2,
CASE WHEN T2.id = 3 AND T1.VAL = T2.VAL THEN T1.SAMP END
AS SAMPLE_3
FROM #TABLE1 T1 LEFT JOIN #TABLE2 T2
ON T1.id = T2.id
DROP TABLE #TABLE1
DROP TABLE #TABLE2
Result
-----------------
Sample2 | Sample3
NULL | NULL
NULL | NULL
NULL | NULL
NULL | NULL
NULL | NULL
NULL | NULL
NULL | NULL
NULL | NULL
2-1 | NULL
NULL | NULL
NULL | 3-1
=====================
Preferred Result would be
-----------------#
Sample2 | Sample3
2-1 | 3-1
=====================
Asked by Gibbs Khan
(1 rep)
Apr 16, 2024, 04:01 PM
Last activity: Apr 16, 2024, 05:16 PM
Last activity: Apr 16, 2024, 05:16 PM