| 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: 1816
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: 1816
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: 1816
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: 659
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: 1816
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 |
|
| |