Zdravím, prosím o pomoc s následujícím dotazem. Něco v něm soustavně přehlížím a nemůžu přijít na to co to je. Můj požadavek: Mám 3 tabulky. -v první (označena c) je seznam uživatelů kteří se zalogovali. Pro každého zalogovaného uživatele/den je v tabulce právě jeden záznam ke konkrétnímu dni (nemůže se stát že by například pro datum 19.2.2009 byl v tabulce 2x uživatel Jan Dědek) -ve druhé tabulce (označena p) je přehled toho co daný uživatel v daném dni udělal a je zde i bodové hodnocení. Právě sloupec body potřebuji pro každého uživatele/den sečíst a přiřadit ke jménům načtených z tabulky jedna -třetí tabulka (označena n) má stejnou strukturu jako tabulka 2 a potřebuji získat stejná data
SELECT c.id,c.datum,c.jmeno,c.tym,c.poznamka,
sum(p.body) AS [Body 1],sum(n.body) AS [Body 2]
FROM tb_denni_statisiky_vystupy c
LEFT OUTER JOIN tb_body_1 p ON
p.jmeno=c.jmeno AND
p.tym=c.tym AND
p.datum_odeslani=c.datum AND
p.stav=2
LEFT OUTER JOIN tb_body_2 n ON
n.jmeno=c.jmeno AND
n.tym=c.tym AND
n.zpracovano_datum=c.datum AND
n.stav=2
WHERE c.datum>='1.2.2009' AND c.datum<='2.19.2009'
GROUP BY c.id,c.datum,c.jmeno,c.tym,c.poznamka''
Porovnání týmů je pouze z důvodu ošetření velmi nepravděpodobného případu, kdy by vedoucí přesunul uživatele během dne z týmu do týmu. Potřebuji načíst všechny data z první tabulky(c) a k nim přiřadit data ze zbylých dvou tabulek (pokud v nich záznam odpovídající kriteriím existuje). Problém je že mi dotaz vrací nesmyslná čísla. Ale je zajímavé že pokud provedu propojení pouze s jednou tabulkou (buď p nebo n) vrácená data jsou správná. Zřejmě španě chápu co se s čím spojuje pokud je zde více tabulek. Dotaz spouštím na SQL serveru 2000
|