I have the following data with following conditions:
Old Type New Type
Number: 01 in table1 with Connection : 'J' in table2 'GE'
Number: 01 in table1 with Connection : 'K' in table2 'GPE'
Number: 01 in table1 with Connection: 'L' In table2 'GPA'
Number: 02 in table1 with Connection: 'I' in table2 'I02'
I used queries like:
SELECT CASE WHEN t1.Number = '01' THEN
CASE WHEN t2.Connection = 'J' THEN 'GE'
ELSE CASE WHEN t2.Connection = 'K' THEN 'GPE'
ELSE CASE WHEN t2.Connection = 'L' THEN 'GPA'
ELSE 'NOTHING' END END END END AS NewType
FROM Table1 AS t1 LEFT JOIN Table2 AS t2
ON (t1.ID = t2.ID).
I'll take an example:
An ID can have multiple connections attached to it. Let Say:
Table1 ID : 0001
Number: 01
Table2 ID: 0001
Connection: J, K, S, O, P.
Now, when i do the above query, i would get a result of 3 rows new case types for ID 0001.
I would like to just get one, and the first priority will be put on the condition of (GE).
everytime I see a Number '01' and Connection 'J', I would ignore the other connection. If i do not see Number = '01' and Connection: 'J'. i would go for the rest of the conditions.
Hope you guys see what problem i am having.
Thanks,
Jul.
Try this:
SELECT CASE WHEN t1.Number = '01' THEN
CASE WHEN t2.Connection = 'J' THEN 'GE'
WHEN t2.Connection = 'K' THEN 'GPE'
WHEN t2.Connection = 'L' THEN 'GPA'
ELSE 'NOTHING' END
END AS NewType
FROM Table1 AS t1 LEFT JOIN Table2 AS t2
ON (t1.ID = t2.ID)
Since I do not like repeating the condition, I would do this:
SELECT CASE WHEN t1.Number = '01' THEN
CASE t2.Connection WHEN 'J' THEN 'GE'
WHEN 'K' THEN 'GPE'
WHEN 'L' THEN 'GPA'
ELSE 'NOTHING' END
END AS NewType
FROM Table1 AS t1 LEFT JOIN Table2 AS t2
ON (t1.ID = t2.ID)
|||Still, i get multiple results.....Thanks though.|||So you want only one row returned?
SELECT CASE WHEN t1.Number = '01' THEN
CASE t2.Connection WHEN 'J' THEN 'GE'
WHEN 'K' THEN 'GPE'
WHEN 'L' THEN 'GPA'
ELSE 'NOTHING' END
END AS NewType
FROM Table1 AS t1 LEFT JOIN (
select id, min(Connection) [Connection]
from Table2
group by id) AS t2
ON (t1.ID = t2.ID)
|||It works....Thanks sooo much.....
No comments:
Post a Comment