Uvedom si, ze kdyz udelas select z tabulky, ktera ma rekneme 1000 polozek a pritom udelas join teze tabulky pres pole ktere neni unikatni, tak ti muze vzniknout tabulka ktera ma 1000x1000 polozek. A to je presne to co delas (v prvnim pripade tu tabulku pouzivas dokonce 3x).
navic GROUP BY m.datum, n.datum je nadbytecny, pokud mas prave pres toto pole ten join.
count(abc) pak ma smysl pouze v pripade, ze se v joinovane tabulce muze vyskytnout hodnota null (takovy vysledek se pak do poctu nezapocita) jinak je to stejne jako count(*), coz je tvuj pripad. Joinujes stejnou tabulku, takze NULL vzniknout nemuze, vzdy existuje min jeden prvek (ten samy) ktery odpovida. Takto to co chces neziskas.
Edit: Mozna zkus decentne popsat strukturu a trochu vic nastinit co ma byt vysledkem dotazu.





Odpověď s citací
