Stránka: 1 z 1
| [ Príspevkov: 20 ] | |
Autor | Správa |
---|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
mam v tabulke ludi, ktory si pod svojim nickom do nej ukladaju svoje vyplaty ...
takze vyzera to nejako takto:
cislo nick_name den vyplaty vyplata
1. peter utorok 5.2 352
2. jakub streda 6.2 584
3. peter streda 6.3 - (nemal plat)
... atd.
mam spraveny vyber z DB a zobrazenie vsetkych nickov z Db takto:
Kód: $OK2 = "SELECT DISTINCT nick_name FROM table ORDER by nick_name "; $resultOK2 = mysql_query($poziadavkaOK2) or die ("Stala sa chyba v spojeni s DB"); while ($vysledokOK2 = mysql_fetch_array($resultOK2))
{ echo "".$vysledokOK2["nick_name"]." "; }
proste mi vypise vsetkych ludi vedla seba, je to OK (rovnake mena len raz samozrejme)
potrebujem to dorobit tak, aby mi za kazdym vypisanym menom ukazalo v zatvorke jeho priemerny plat a rovnako pocet dni , kedy plat nemal, ako na to ? (ak clovek nema plat, v dany den zapise do DB len pomlcku - )
|
|
Registrovaný: 09.07.08 Prihlásený: 17.01.15 Príspevky: 1585 Témy: 96 | 96 |
Prečo pomlčku? Ty nepoužívaš dátové typy?
_________________ neříkejte, že něco nejde udělat, protože se vždycky najde nějaký blbec, co neví, že to nejde – a udělá to! |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
ake datove typy myslis ? proste je to jedno co tam je, ci pomlcka, ci nic, ale proste nieco tam musi byt, aby bolo jasne, ze v tom mesiaci nemal vyplatu
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
Ak clovek nema vyplatu, tak v tabulke uvadzaj nulu namiesto pomlcky - typ stlpca si nastav na ciselny...
zrejme sa to bude dat zjednodusit, ale aspon pre zaciatok:
Kód: SELECT nick_name AS meno, AVG(vyplata) AS priemer, (SELECT COUNT(*) FROM tbl WHERE vyplata=0 AND nick_name=meno) AS pocet FROM tbl GROUP BY meno
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
dakujem stenley, je to OK a teraz nieco podobne, pre mna zlozitejsie, pre teba urcite malina ...
takze podobna tabulka, kde su mena, ludia a pri kazdom cloveku je jeho zdravotna prehliadka, kde je len napisane OK, alebo KO (je alebo nie je v poriadku)
takze nieco ako
cislo meno datum stav
1. jano 25.2 OK
2. peter 24.2 KO
3. jano 23.9 KO
4. peter 5.6 KO
3. juraj 5.7 OK
....
a potrebujem spravit zobrazenie vsetkych mien, ako predtym s tym, ze pri kazdom mene bude aj napisane % hodnota ako na tom je. ta hodnota sa vypocita ako ( pocet OK+ pocet KO) / pocet OK samozrejme z hodnot pre dane meno.
ako buze vyzerat ten select ?
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Kód: SELECT DISTINCT a.meno, (b.p_ok * 100) / ( b.p_ok + b.p_ko ) AS pomer FROM tabulka a, ( SELECT meno, SUM(CASE WHEN stav = 'OK' THEN 1 ELSE 0 END ) AS p_ok, SUM(CASE WHEN stav = 'KO' THEN 1 ELSE 0 END ) AS p_ko FROM tabulka GROUP BY meno ) AS b WHERE a.meno = b.meno
Ale jednoduchsie by asi bolo keby bol stav opat ciselna hodnota (0/1), potom by stacilo Kód: SELECT meno, (sum(stav) * 100) / count(meno) as pomer FROM tabulka GROUP BY meno
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča | |
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Som presvedceny o tom ze nemusi, ale OK V tom pripade prva moznost
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
inak to a.meno v mojom pripade bude a.nick_name ?
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
baumax píše: takze nieco ako cislo meno datum stav
Ak to "meno" o ktorom si pisal ma byt nick_name, tak potom ano
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
Kód: FROM tabulka a to je dobre napisane ? samozrejme namiesto tabulka pisem nazov mojej TBL
ten select mi nefunguje, vypisuje chyby v spojeni s DB
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Ano, je to spravne, chybu budes mat asi niekde inde, mozno preklep alebo tak.
Skus si ten prikaz spustit cez phpMyAdmina, tam ti vypise aj kde mas priblizne chybu
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
jasne, preklem, jedno meno som este nezmenil za nick_name.
dakujem za pomoc, funguje to korektne
|
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
este pls, ked to chcem zotriedit podla toho pomeru, kde pojde to ORDER BY pomer ?
|
|
Registrovaný: 29.10.07 Prihlásený: 27.10.23 Príspevky: 1395 Témy: 30 | 30 Bydlisko: Bratislava |
Uplne na koniec
_________________ PC: OS: Windows 11 (64bit) CPU: AMD Ryzen 5 3600 GPU: ASUS TUF RTX3060Ti 8GB RAM: 16GB DDR4-3200MHz Kingston Fury MB: ASUS TUF Gaming B550M WIFI SSD: 1000GB PCIe M.2 NVME Mobil: Xiaomi POCO F2 PRO |
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
Chlapi, trosku som to prerabal a potrebujem pomoc ... toto riesenie co je hore je super, ale TERAZ MI DO TABULKY PRIBUDOL NA KONIEC DALSI PARAMETER ... VOLA SA RAST
takze mam velku tabulku, v kazdej je to iste ako predtym a ja potrebujem spravit ten vypis, ten zlozity SELECT, aby to selektovalo a zotriedilo podla priemernej hodnoty toho parametra rast ...
ten parameter je typu float, takze moze tam byt cislo 3, 20, ale aj -15 ...
teda uz vobec netreba pocitat nic s OK, ani KO, len proste vypisat dane mena, teda DISTINCT tam bude urcite a spravit pre kazde meno priemer z hodnoty v tabulke v stlpci RAST a zoradit to podla toho priemeru, zhora nadol
ako na to ?
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
cize potrebujes Kód: SELECT nick_name as meno, avg(rast) as priemerny_rast FROM table group by nick_name ORDER by avg(rast) ? apropo. pokial pouzivas group by tak distinct netreba
|
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
na localhoste mi to vypisalo zopar ludi a potom: Fatal error: Maximum execution time of 30 seconds exceeded in C:\AppServ\www\platy\statistiky.php on line 391
asi je to narocne na vypocet, ci co ? mam tam ce 6000 riadkov ... ten prikaz predtym, co mi tu pisali, ten prebehol v pohode
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | 2 |
no 6000 riadkov je v podstate prazdna tabulka, tu sa o narocnosti moc hovorit neda. vyskusaj najprv select bez toho "order by avg(rast)"
|
|
Registrovaný: 11.12.07 Prihlásený: 13.06.24 Príspevky: 488 Témy: 139 | 139 Bydlisko: Bytča |
problem bude asi na mojom localhoste, uz to prebehlo OK a vyzera ze je to OK, to usporiadanie, dakujem
|
|
Stránka: 1 z 1
| [ Príspevkov: 20 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| v PHP, ASP | 5 | 585 | 14.06.2009 22:04 mylan | | v JavaScript, VBScript, Ajax | 3 | 1153 | 16.09.2007 20:12 imcold | | v JavaScript, VBScript, Ajax | 1 | 487 | 22.05.2015 12:44 stenley | | v Operačné systémy Microsoft | 11 | 387 | 15.08.2010 21:17 hornak | | v PHP, ASP | 2 | 373 | 19.01.2017 12:14 BX | | v Databázy | 7 | 755 | 03.08.2008 15:23 Punker661 | | v Chladiče a všetky druhy chladenia | 15 | 1270 | 03.04.2009 20:11 KingTommy | | v JavaScript, VBScript, Ajax | 2 | 795 | 28.09.2009 15:27 tomast7 | | v HTML, XHTML, XML, CSS | 3 | 458 | 13.09.2012 21:49 1daemon1 | | v Databázy | 6 | 1444 | 31.08.2006 13:50 tRizzO | | v Databázy | 8 | 552 | 16.03.2012 14:09 zdeniatqo | | v PHP, ASP | 7 | 678 | 02.05.2008 13:53 mondzo | | v Databázy | 2 | 617 | 18.05.2009 18:05 p360t | | v Databázy | 2 | 566 | 23.03.2012 16:52 general667 | | v Databázy | 5 | 595 | 07.06.2010 14:08 MisakNo10 | | v HTML, XHTML, XML, CSS | 3 | 586 | 06.03.2009 14:34 Ďuri |
|