Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

ordonare [REZOLVAT]
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Subiectul anterior :: Subiectul următor  
Autor Mesaj
bug124



Data înscrierii: 13/Feb/2008
Mesaje: 7

Trimis: Mie Feb 13, 2008 11:21 am    Titlul subiectului: ordonare [REZOLVAT]  

nu stiu cum sa fac o interogare prin care sa selectez din tabela produsele distincte si sa ordonez in functie de produsele libere.

de exemplu am produsele:

nume..............comandat
pix..................4
pix..................0
creion..............1
creion..............0
creion..............0
mercedes.........5
mercedes.........1

In coloana comandat se tine minte id-ul celui care a comandat produsul sau valoarea 0 daca produsul este liber.


vreau sa afisez produsele asa (ordonat dupa coloana disponibile) :

nume...........total............disponibile..........comandate
mercedes......2.................0..........................2
pix...............2.................1..........................1
creion...........3..................2..........................1

In tabela trebuie sa introduc acelasi produs de cate ori exista el in stoc... deoarece sunt anumite diferente intre ele (cum ar fi numarul serial al fiecarui produs). asa ca nu pot schimba structura tabelei...
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1419
Locație: Sibiu

Trimis: Mie Feb 13, 2008 12:42 pm    Titlul subiectului:  

incearca Cod: SELECT nume, COUNT(*) AS total, COUNT(comandat <> 0) AS disponibile, COUNT(comandat = 0) as comandate FROM stoc GROUP BY nume ORDER BY COUNT(comandat = 0) ASC
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1419
Locație: Sibiu

Trimis: Mie Feb 13, 2008 4:08 pm    Titlul subiectului:  

Revizuit:
Cod: SELECT nume, COUNT( * ) AS total, SUM( comandat <> 0 ) AS disponibile, SUM( comandat = 0 ) AS comandate
FROM test
GROUP BY nume
ORDER BY comandate ASC
Asta l-am si testat, merge.
Sus  
bug124



Data înscrierii: 13/Feb/2008
Mesaje: 7

Trimis: Mie Feb 13, 2008 4:19 pm    Titlul subiectului:  

ok. mersi mult de tot. merge acum
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1419
Locație: Sibiu

Trimis: Mie Feb 13, 2008 4:25 pm    Titlul subiectului:  

Sa fii sanatos. Pune [rezolvat] la titlu.
Sus  
dechim



Data înscrierii: 10/Mai/2005
Mesaje: 547
Locație: Drobeta Turnu Severin

Trimis: Mie Feb 13, 2008 10:39 pm    Titlul subiectului:  

@mihaitha mi-a placut asta: SUM( comandat <> 0 )
Am retinut !
:)
Sus  
mihaitha



Data înscrierii: 04/Mai/2007
Mesaje: 1419
Locație: Sibiu

Trimis: Joi Feb 14, 2008 9:47 am    Titlul subiectului:  

mai vin cu o corectie:
Fata de cum ar fi mers in mod logic cu COUNT(), SUM() face exact invers. Adica in cazul de fata, SUM(comandat <> 0) reprezinta numarul de comandate, iar SUM(comandat = 0) reprezinta numarul de disponibile. Deci trebuie schimbate aliasurile astea doua intre ele. Ideea e ca si mie mi-a iesit asta din intamplare, dar am retinut-o si eu ;)
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community