Autor Zpráva
ludvalb
Profil
Zdravím, mám takový problém se spojením více tabulek.

Mám tyto tabulky:
sklad - ks / autoID / nazev

koupeno - produktID / ks

deni_prehled - autoID / produktID / ks_prodej

a potřebuji vytvořit SELECT kde výsledek bude sklad.ks + koupeno.ks - deni_prehled.ks_prodej a tabulky se spojí na sklad.autoID=deni_prehled.produktID a sklad.autoID=koupeno.produktID a přitom z tabulky deni_prehled se vyberou pouze dotazy kde platí autoID<0 a zároveň je také potřeba u tabulek koupeno a deni_prehled potřeba seskupit záznamy kde jsou řádky se schodným produktID.

Hodnoty z tohoto SELECTu pak následně vypíšu do tabulky kde bude pouze sloupec název a ks

Zkoušel jsem různé varianty zápisů, co jsem našel zde na foru, ale vždy jsem se v tom zamotal a kod nefungoval. Jsem začátečník.
Budu vděčný za jakoukoliv pomoc.

Předem všem děkuji.
Kajman
Profil
Strukturu tabulek moc nechápu, ale možná hledáte něco jako
SELECT s.nazev,
       Ifnull(s.ks, 0) + Ifnull(dp.soucet, 0) + Ifnull(k.soucet, 0) ks
FROM   sklad s
       LEFT JOIN (SELECT produktID,
                         Sum(ks_prodej) soucet
                  FROM   deni_prehled
                  WHERE  autoID < 0
                  GROUP  BY produktID) dp
              ON s.autoID = dp.produktID
       LEFT JOIN (SELECT produktID,
                         Sum(ks) soucet
                  FROM   koupeno
                  GROUP  BY produktID) k
              ON s.autoID = k.produktID  
ludvalb
Profil
jj, to je přesně ono. Budu se muset naučit používat takovouto strukturu zápisu, když je to něco složitějšího, tak se v tom vždycky zamotám a ztrácím souvislosti.

Moc děkuji.

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: