none
Spojení tabulek

    Dotaz

  • Dobrý den,

    nemohu to nějak vymyslet, prosím o radu.

    Mám tabulku ZBOZI se sloupci ID_ZB, NAZEV, atd

    Pak mám tabulku VYDEJ kde je OS_CISLO, ID_ZB, KS, DATUM_VYDEJE, atd

    Potřebuji spojit tabulky tak, abych měl seznam VYDEJ doplněný o ZBOZI, které ještě daný zaměstnanec nedostal.

    Tabulky nemají stejnou strukturu, spojovací sloupec je ID_ZB a podmínka OS_CISLO. V podstatě bych potřeboval to spojení s nejdříve vyhodnocenou podmínkou, a až potom to spojení? Ale jak na to?

    Díky

    10. února 2018 10:57

Všechny reakce

  • A kde mas tabulku se zamestnanci? V podstate hledas všechny kombinace zamestnanec x zboží, pro které neexistuje  (v nejakem obdobi) zaznam v tabulce vydej, ano?

    Myslim, ze dle vyseuvedene formulace uz das ten cross join kombinovany s outer joiny (nebo not exists) dohromady, ne? Něco jako:

    SELECT     Zam_Zboz.ID_ZAM, Zam_Zboz.ID_Zboz, Zam_Zboz.JmenoZam, Zam_Zboz.JmenoZb
    FROM         (SELECT     dbo.tZam.ID_ZAM, dbo.tZbozi.ID_Zboz, dbo.tZam.JmenoZam, dbo.tZbozi.JmenoZb
                           FROM          dbo.tZbozi CROSS JOIN
                                                  dbo.tZam) AS Zam_Zboz LEFT OUTER JOIN
                          dbo.tPohyby ON Zam_Zboz.ID_ZAM = dbo.tPohyby.idZam AND Zam_Zboz.ID_Zboz = dbo.tPohyby.idZboz
    WHERE     (dbo.tPohyby.idZam IS NULL)

    resp.

    SELECT     dbo.tZam.ID_ZAM, dbo.tZbozi.ID_Zboz, dbo.tZam.JmenoZam, dbo.tZbozi.JmenoZb
    FROM         dbo.tZbozi CROSS JOIN
                          dbo.tZam
    WHERE     (NOT EXISTS
                              (SELECT     idZam, idZboz, Datum, Ks
                                FROM          dbo.tPohyby
                                WHERE      (idZam = dbo.tZam.ID_ZAM) AND (idZboz = dbo.tZbozi.ID_Zboz)))

    MP



    12. února 2018 10:24