Autor Zpráva
DGO
Profil *
Zdravím, mám tento problém s dotazem na MSSQL CE 3.5 (nelze tedy používat vnořené SELECTY)

4 Tabulky
HRACI (ID,jmeno,prijmeni,post,prichod...)
TRENINKY (ID,datum,...)
UCASTI_NA_TRENINKU (akceID - id treninku,hracID - id hrace)
POSTY (ID - id postu,popis)

Mým cílem je dostat výpis:
HRAC.ID,prijmeni,jmeno,prichod,post(id),popis postu,pocet moznych treninku, pocet ucasti

počet možných tréninků - součet tréninků, kterých se hráč mohl zúčastnit tj. porovnání datum příchodu hráče s datumem tréninku, pokuď je trénink po datu příchodu hráče, tak se započítává do možných tréninků

počet účastí - součet tréninků kterých se hráč účastnil tj. součet všech akceID kde se hráčID = HRACI.ID

Mám tento dotaz, který SKORO dělá to co vyžaduji, ale nefunguje poslední sloupec, který má udávat součet zúčastněných tréninků...

SELECT HRACI.ID, HRACI.jmeno, HRACI.prijmeni, HRACI.prichod, HRACI.post, HRACI.a_tym, HRACI.aktivni, POSTY.popis, COUNT(TRENINKY.ID)
AS pocet_moznych_treninku, COUNT(UCASTI_NA_TRENINKU.akceID) AS pocet_ucasti
FROM HRACI INNER JOIN
POSTY ON HRACI.post = POSTY.ID LEFT OUTER JOIN
UCASTI_NA_TRENINKU ON HRACI.ID = UCASTI_NA_TRENINKU.hracID LEFT OUTER JOIN
TRENINKY ON HRACI.prichod < TRENINKY.datum
GROUP BY HRACI.ID, HRACI.jmeno, HRACI.prijmeni, HRACI.prichod, HRACI.post, POSTY.popis, HRACI.a_tym, HRACI.aktivni
ORDER BY HRACI.prijmeni, HRACI.jmeno


Dokáže mi někdo prosím poradit jak na to, když nejdou vnořené dotazy ? Díky předem.
Kajman_
Profil *
zkuste
COUNT(distinct UCASTI_NA_TRENINKU.akceID)

nebo možná bude lepší přidat podmínku
LEFT OUTER JOIN TRENINKY ON HRACI.prichod < TRENINKY.datum
LEFT OUTER JOIN UCASTI_NA_TRENINKU ON HRACI.ID = UCASTI_NA_TRENINKU.hracID and TRENINKY.ID=UCASTI_NA_TRENINKU.akceID
DGO
Profil *
Tak při požití COUNT(Distinct hlásí chybu...

jenom ještě dodám jak vypadá výsledek původního dotazu

10 Zdeněk Povídal 15.11.2007 0:00:00 4 True True Brankář 2 0
1 Jirka Novotný 27.11.2007 0:00:00 2 False True Útočník 1 0
4 Richard Novotný 15.11.2007 0:00:00 3 False True Obránce 2 0

takhle to vypadá vše v pořádku jenom do doby než se vloží nějaké účasti, pak např. při 1 účasti ze 2 možných vyjede výsledek, že místo 1 učáasti má hráč 2 ze 2..
DGO
Profil *
Teď to funguje ! Ta podmínka pomohla výborně. Mockrát děkuji za pomoc.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0