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?

Komentáře

  • harrison314 : Chces dostat vako, ktore sedia aspon na jednej s konkretnych vetiev? Alebo na lubovolnej vetve? 4.4.2018
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:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.