Autor Zpráva
hal_sk
Profil
Mám tabulku:
Id :: Meno :: Id_rodiny :: Je_hlavny_clen
1 :: Anna :: 2 :: 1
2 :: Jano :: 2 :: 0
3 :: Fero :: 1 :: 1
4 :: Maja :: 2 :: 0
5 :: Peto :: 3 :: 0
6 :: Palo :: 3 :: 1


Chcem aby to vypísalo hlavných členov rodiny s uvedeným počtom ostatných členov z ich rodiny. Čiže výsledok:

Meno :: Pocet_clenov
Anna :: 3
Fero :: 1
Palo :: 2

Ale neviem akým dotazom to dosiahnuť, prosím pomôžte.
hal_sk
Profil
Možno takýmto spôsobom, ale namiesto XXX treba dosadiť niečo, čo bude inkrementovať, počas naskakovania riadkov:
SELECT
 Meno,Id_rodiny,(SELECT COUNT(Id_rodiny) FROM tabulka WHERE Id_rodiny=XXX) as Pocet_clenov
FROM
 tabulka
TomášK
Profil
SELECT
    tabulka.jmeno, 
    p.pocet_clenu 
FROM 
    tabulka
    JOIN (
        SELECT id, COUNT(*) AS pocet_clenu FROM tabulka GROUP BY id_rodiny
    ) AS p ON p.id = tabulka.id 
WHERE 
    tabulka.je_hlavny_clen = 1
hal_sk
Profil
TomášK
Ale potom je výsledok takýto:

meno :: pocet_clenov
Fero :: 1
Anna :: 3
TomášK
Profil
Promiň, udělal jsem tam chybu - má se to vázat přes id_rodiny. Co takto?
SELECT 
    tabulka.jmeno, 
    p.pocet_clenu pocet_clenu
FROM 
    tabulka
    JOIN (
        SELECT id_rodiny, COUNT(*) AS pocet_clenu FROM tabulka GROUP BY id_rodiny
    ) AS p ON p.id_rodiny = tabulka.id_rodiny
WHERE 
    tabulka.je_hlavny_clen = 1
hal_sk
Profil
THX

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:

0