Autor Zpráva
Prkny
Profil
Mám tři tabulky:
sklad (id, id_zbozi (int), ...)
sklad_pohyb (id, id_zbozi(int), datum_pohybu (date), ...)
sklad_zb_bez_pohybu_datumy (id, id_zbozi (int), datum_dalsi_kontroly (date), ...)

Ve skladu může být několik záznamů se stejným 'id_zbozi' z důvodů voleb, stačí porovnávat pouze 1 id_zbozi.

Skrze tyto tři tabulky potřebuji dotaz:
Vyber ze skladu všechno id_zbozi a jeho poslední datum_pohybu, kde za půl roku nemá toto id_zbozi žádný pohyb a kde datum_dalsi_kontroly neexistuje nebo je menší než NOW()

Prosím o nasměrování správným směrem.
Kajman
Profil
Možná něco takového
SELECT t.id_zbozi,
       (SELECT Max(datum_pohybu)
        FROM   sklad_pohyb p2
        WHERE  p2.id_zbozi = t.id_zbozi) posledni
FROM   (SELECT s.id_zbozi
        FROM   (SELECT DISTINCT id_zbozi
                FROM   sklad) s
               LEFT JOIN sklad_pohyb p
                      ON s.id_zbozi = p.id_zbozi
                         AND p.datum_pohybu > Date_sub(Now(), INTERVAL 6 month)
               LEFT JOIN sklad_zb_bez_pohybu_datumy bp
                      ON s.id_zbozi = bp.id_zbozi
                         AND bp.datum_dalsi_kontroly >= Now()
        WHERE  p.id_zbozi IS NULL
               AND dp.id_zbozi IS NULL) t  
Prkny
Profil
Je to přesně ono, absolutní respekt a velké poděkování.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0