Portál AbcLinuxu, 13. května 2025 00:59

Dotaz: součet zákroků lékaře, count...

26.4.2011 00:18 jardík
součet zákroků lékaře, count...
Přečteno: 290×
Odpovědět | Admin
Zdravím, potřebuji poradit s SQL dotazem. Cíl je vypsat všechny doktory a jejich odbornosti a to sestupně DLE počtu jejich zákroků.

Tabulky: lekari (id_lekare, jmeno, prijmeni, umi) odbornosti (odbornosti_nazev, specifikace) sluzba (id_slouzeni, datum, lekar, sestra, mistnost) osetreni (id_osetreni, nazev_ukonu, body_pojistovna, pacient, slouzil---> sluzba.id_slouzeni)
SELECT  `odbornosti_nazev` , CONCAT(  `jmeno` ,  ' ',  `prijmeni` ) AS  'doktůrek', COUNT( sluzba.lekar ) AS  'počet zákroků'
FROM  `odbornosti` ,  `lekari` , sluzba
WHERE  `lekari`.`umi` =  `odbornosti`.`odbornosti_nazev`
AND sluzba.lekar = lekari.id_lekare
ORDER BY 3 DESC 
LIMIT 0 , 30
výsledek je že se mi vypíše sestupně počet doktorů, kteří měli službu, ne počet zákroků

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.4.2011 08:56 kuka
Rozbalit Rozbalit vše Re: součet zákroků lékaře, count...
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak v dotazu vidim pouze tabulky

`odbornosti` , `lekari` , sluzba

takze aniz bych ho zkoumal, nevim odkud by se ve vysledku mely vzit pocty zakroku

26.4.2011 09:02 jardík
Rozbalit Rozbalit vše Re: součet zákroků lékaře, count...
v tab osetreni je sloupec slouzil a ten odkazuje na sluzba.id_slouzeni a v tabulce sluzba mam sloupec lekar odkazující do lekari.id_lekare
26.4.2011 10:01 SPM | skóre: 28
Rozbalit Rozbalit vše Re: součet zákroků lékaře, count...
No jo, ale pak tim countem musíš počítat ty záznamy v tabulce osetreni a ne sluzba (pak ti vůbec v těch číslech vyjde jen počet služeb toho doktora). Tedy potřebuješ udělat ještě další join, kterým spojíš sluzby s osetreni, spočítáš řádky v osetreni a uděláš group by podle id_lekare
26.4.2011 10:33 jardík
Rozbalit Rozbalit vše Re: součet zákroků lékaře, count...
tak už jsem na to přišel, chyběla tam jedna vazba:
SELECT `odbornosti_nazev` , CONCAT( `jmeno` , ' ', `prijmeni` ) AS 'doktůrek',
COUNT( sluzba.lekar ) AS 'počet zákroků'
FROM `odbornosti` , `lekari` , sluzba, osetreni
WHERE `lekari`.`umi` = `odbornosti`.`odbornosti_nazev`
AND sluzba.lekar = lekari.id_lekare
AND osetreni.slouzil = sluzba.id_slouzeni
GROUP BY sluzba.lekar
ORDER BY 3 DESC
LIMIT 0 , 30
26.4.2011 15:46 kuka
Rozbalit Rozbalit vše Re: součet zákroků lékaře, count...
Ano, presne tak, jak jsem ti hodinu a pul pred tim odpovidal:-) Jinak COUNT( sluzba.lekar ) zde muze byt ponekud matouci, lepsi je asi count(*), takto muze mit pozorny ctenar podezreni, ze nejak zvlast zalezi zrovna na tom sluzba.lekar. Nicmene fungovat to bude, protoze sluzba.lekar nemuze byt v tomto pripade null.
26.4.2011 16:50 jardík
Rozbalit Rozbalit vše Re: součet zákroků lékaře, count...
díky ještě jednou

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.