Matrix v MSSQL rubrika: Databáze: SQL
3
Fidelio
položil/-a 4.4.2018
Tohle asi nebude úplně snadné s MSSQL 2014, ale zkusím to...
Pro snadnější představu přepisuji situaci na abstrakci STROMY, VĚTVE, PTÁCI.
Mám seznam STROMŮ, každý STROM má VĚTVE na kterých může sedět několik PTÁKŮ
Vždy vypsat jen ty PTÁKY, kteří mohou sedět alespoň na jedné z VĚTVÍ
snažím se to narvat do 1 - 2 sqlek, ale nedaří se...
Pro vysvětlenou snad pomůže SQLfiddle: http://www.sqlfiddle.com/#!18/80e4d/1
Věděl by někdo?
odkaz
4
plelovsky
odpověděl/-a 5.4.2018
SELECT Strom = 'strom' + CAST(s.Id AS VARCHAR(10)) , UID = 'uid' + CAST(u.Id AS VARCHAR(10)) , Vetev = 'vetev' + CAST(v.Id AS VARCHAR(10)) , p.Stav FROM Vetve v INNER JOIN Stromy s ON s.Id = v.StromyId CROSS JOIN (SELECT DISTINCT UID AS Id FROM Ptaci) u LEFT OUTER JOIN Ptaci p ON p.VetveId = v.Id AND p.UID = u.Id ORDER BY s.Id , u.Id , v.Id ;
Pro zobrazení všech 4 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře