Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno MySQL - seksupení a vypsání počtu položek ve skupině...

Ahoj, řeším tento problém:

Mám tyto DB tabulky:

results: ID,USER_ID,DEFINITION_ID DATETIME,...
users: ID, FIRM_ID, GROUP_ID, NAME,SURNAME
groups: ID, FIRM_ID, GROUP_NAME

každý user je v právě jedné skupině (group)
user může mít více záznamů v result
každy user má právě jedno FIRM_ID, může být víc userů se stejným firm_id
každá group má právě jedno FIRM_ID, může být víc group se stejným firm_id

A já potřebuji vypsat tabulku, kde bude:

1. sloupec: Datum (bez času)
2. sloupec: Název skupiny (GROUP_NAME)
3. sloupec: Kolik záznamů má skupina uvedena ve sloupci 2 pro to datum, které je ve sloupci 1

Datumy se načítají a groupují dle DATE(DATETIME) z results...

Vznikne tedy tabulka např:

9.10.2015|Skupina A|7 záznamů
9.10.2015|Skupina B|9 záznamů
8.10.2015|Skupina A|10 záznamů
8.10.2015|Skupina C|5 záznamů
...

Zkusil jsem to dle následujícího SQL a vše funguje dobře, až na jednu podstatnou chybu - blbě se počítají ty počty, chyba myslím vznikne, když se v tabulce objeví stejná skupina vícekrát...

Prosím o radu jak ten SQL opravit:

SELECT g.ID AS GID, g.GROUPNAME,COUNT(r.ID) AS NUM_RESULTS, DATE(r.DATE_FINISH) AS DATE_FINISH
FROM users AS u
 JOIN result AS r ON (r.USER_ID = u.ID AND r.DATE_FINISH IS NOT NULL)
 JOIN groups AS g ON (g.ID = u.GROUP_ID)
WHERE u.FIRM_ID = 123456 AND r.DEFINITION_ID = 123
GROUP BY DATE(DATE_FINISH)
ORDER BY DATE_FINISH DESC

Díky za pomoc...

Předmět Autor Datum
Musis souctovat dle dne a ID GROUP BY DATE(DATE_FINISH), u.GROUP_ID
Jan Fiala 09.10.2015 14:49
Jan Fiala
j, dík, 10 sekund než si to napsal jsem na to taky přišel... stačilo se na chvilku projít :-) Díky poslední
n.u.r.v. 09.10.2015 14:59
n.u.r.v.

Zpět do poradny Odpovědět na původní otázku Nahoru