Dotaz na databázi – MySQL – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Dotaz na databázi – MySQL – Fórum – Programujte.comDotaz na databázi – MySQL – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Paja2
~ Moderátor
+2
Věrný člen
21. 1. 2008   #1
-
0
-



$sql=mysql_query("select count(id), sum(poplatek), kategorie,vlozil,pracoviste from evidence
where vlozil='TR' and pracoviste='NB' and kategorie in ('fotbal','hokej','tenis') group by kategorie order by kategorie ASC")
or die (mysql_error());

Problém je v tom že když např. není záznam fotbal tak se nic nevypíše jak teda mám zobrazit kategorie fotbal a u této položky zobrazit hodnotu 0

Nahlásit jako SPAM
IP: 88.146.215.–
Reklama
Reklama
21. 1. 2008   #2
-
0
-

Pokud si dobre pamatuju, tak na to abys mohl aplikovat podminky na sloupec, kde provadis grouping,tak musis pouzit HAVING, ne normalni podminku.

Takhle by to melo jet:

select count(id), sum(poplatek), kategorie,vlozil,pracoviste from evidence 

where vlozil='TR' and pracoviste='NB' group by kategorie having kategorie in ('fotbal','hokej','tenis') order by kategorie ASC


Mozna budes muset trochu preskupit poradi, nepamatuju si, jestli ma having byt pred orderem nebo za. A taky si nejsem jist, jestli jde pouzit having s in.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
Paja2
~ Moderátor
+2
Věrný člen
21. 1. 2008   #3
-
0
-

To CommanderZ :

zkoušel jsem to

 group by kategorie  having kategorie  in 

ale nevypsalo mi to nulovou hodnotu

Nahlásit jako SPAM
IP: 88.146.215.–
21. 1. 2008   #4
-
0
-

Zkus ty kategorie vyjmenovat spis pomoci ID nez podle jmen, to je lepsi. A zkus odstranit typodminky jestli to neco vypise. Pri takovych pripadej je zaklad orezat ten prikaz uplne na kost a pak postupne pridavat veci a divat se co to dela.

Nahlásit jako SPAM
IP: 81.30.238.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
stepan0
Newbie
21. 1. 2008   #5
-
0
-

Podmínka se vytvoří tak, že where omezuje záznamy, které vstupí do agregace (sum, count apod.) a having omezuje výsledek (např. chceme zobrazit pouze záznamy, jejiž počet položek je větší než x-záznamů). To že se nezobrazí záznamy, které nemají žádné agregované položky je v pořádku. Pokud toho chcete docílit, budete to muset zřejmě obejít vnořeným dotazem (možná existuje i jiný způsob). Bohužel s MySQL nemám zkušenosti a u složených nebo agregovaných dotazů si naprosto netroufnu odhadovat, jak se skript zachová.

Nahlásit jako SPAM
IP: 85.71.61.–
Paja2
~ Moderátor
+2
Věrný člen
22. 1. 2008   #6
-
0
-

To CommanderZ : To nepůjde protože struktura tabulky je následující

id || pid || kategorie || vlozil || poplatek

Nahlásit jako SPAM
IP: 217.112.165.–
Paja2
~ Moderátor
+2
Věrný člen
23. 1. 2008   #7
-
0
-

To CommanderZ : zkoušel jsem to takto



$sql=mysql_query("select sum(poplatek),count(pid),kategorie,pracoviste from evidence left join vypisy on evidence.kategorie=vypisy.id where pracoviste='RT' and kategorie in ('fotbal,hokej','tenis') group by kategorie")or die (mysql_error());




ale opět mi to nevypíše kategorie kde není žádný záznam např. tenis

Nahlásit jako SPAM
IP: 217.112.165.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

"Mysql dotaz v dotaz" — založil Tomáš Sedlmajer

VB 6 a problémy s databází — založil karel.laska

Čeština databázi — založil Jakub Doucek

Syncronizace databází — založil KaZbunda

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý