Hej
Får inte rätt på detta för jag är inte så bra på SQL.
Jag har ett table som jag vill skapa en ny view för.
Det ser ut såhär:
Name Email ID Chef_ID
Klas Klas@email.com 1 3
Sven Sven@email.com 2 3
Åke ake@email.com 3 5
Ingvar ingvar@email.com 5 4
Per per@emmail.com 4 null
För det jag ska använda vyn till behöver jag ha emailen som relation mellan användarna samt att alla som är en chef har en kolumn som tydligt visar detta. Jag tänker att ifall personens ID finns i Chef_ID kolumnen så ska kolumnen IsChef sättas till "yes"
Name Email ID Chef_ID ChefEmail isChef
Klas Klas@email.com 1 3 ake@email.com no
Sven Sven@email.com 2 3 ake@email.com no
Åke ake@email.com 3 5 ingvar@email.com yes
Ingvar ingvar@email.com 5 4 per@emmail.com yes
Per per@email.com 4 null null yes
Jag har försökt en del men får inte till det. Antar att man ska göra någon join med sig själv?
Borde fungera (om jag inte blandat ihop namnet på din tabell i min SQL fiddle)
SELECT
T1.*,
T2.Email ChefEmail,
CASE
WHEN T1.ID IN (SELECT ID FROM EmployeeTable WHERE ID in (SELECT Chef_ID FROM EmployeeTable)) THEN "Yes"
WHEN T1.Chef_ID IS NULL THEN "Yes"
ELSE "No"
END AS "IsChef"
FROM EmployeeTable T1
LEFT OUTER JOIN People T2 ON T2.ID = T1.Chef_ID
Borde fungera (om jag inte blandat ihop namnet på din tabell i min SQL fiddle)
SELECT
T1.*,
T2.Email ChefEmail,
CASE
WHEN T1.ID IN (SELECT ID FROM EmployeeTable WHERE ID in (SELECT Chef_ID FROM EmployeeTable)) THEN "Yes"
WHEN T1.Chef_ID IS NULL THEN "Yes"
ELSE "No"
END AS "IsChef"
FROM EmployeeTable T1
LEFT OUTER JOIN People T2 ON T2.ID = T1.Chef_ID