Ordonare crescatoare preturi in ron / eur
Moderatori: Zamolxe, Moderatori
- alexx_utza
- Senior Member
- Mesaje: 251
- Membru din: Joi Mai 10, 2007 10:56 am
- Localitate: in padure...
- Contact:
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
CREATE TABLE `test`.`test_preturi` (
`id` BIGINT NOT NULL AUTO_INCREMENT ,
`produs` VARCHAR( 120 ) NOT NULL ,
`valuta` VARCHAR( 4 ) NOT NULL ,
`pret` DECIMAL( 10 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB
SELECT produs, valuta, pret, if(valuta='eur',pret*4.2,pret) pr_final FROM `test_preturi` ORDER BY pr_final ASC
Se face un calcul in acel IF dar ar trebui sa ai decat 2 monede maxim [LEI si altceva] altfel ar trebui sa folosesti o proceduea de genul switch-case
http://dev.mysql.com/doc/refman/5.1/en/ ... ement.html
edit // sau, daca ai mai multe monede merge varianta alexandra, de mai sus, unde faci mai multe union-uri... insa te va costa ceva mai multe resurse de baza de date. La o baza de date mare, se va cunoaste enorm ca si timp de lucru.
edit 2 // sau poti sa folosesti mai multe if-uri
SELECT produs, valuta, pret,
if(valuta='eur',pret*4.2, if(valuta='lire',pret*8, pret)) pr_final
FROM `test_preturi` ORDER BY pr_final ASC
`id` BIGINT NOT NULL AUTO_INCREMENT ,
`produs` VARCHAR( 120 ) NOT NULL ,
`valuta` VARCHAR( 4 ) NOT NULL ,
`pret` DECIMAL( 10 ) NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = InnoDB
SELECT produs, valuta, pret, if(valuta='eur',pret*4.2,pret) pr_final FROM `test_preturi` ORDER BY pr_final ASC
Se face un calcul in acel IF dar ar trebui sa ai decat 2 monede maxim [LEI si altceva] altfel ar trebui sa folosesti o proceduea de genul switch-case
http://dev.mysql.com/doc/refman/5.1/en/ ... ement.html
edit // sau, daca ai mai multe monede merge varianta alexandra, de mai sus, unde faci mai multe union-uri... insa te va costa ceva mai multe resurse de baza de date. La o baza de date mare, se va cunoaste enorm ca si timp de lucru.
edit 2 // sau poti sa folosesti mai multe if-uri
SELECT produs, valuta, pret,
if(valuta='eur',pret*4.2, if(valuta='lire',pret*8, pret)) pr_final
FROM `test_preturi` ORDER BY pr_final ASC
alexx_utza, saptamana asta esti eroul meu!
Multumesc tuturor, initial ma gandisem sa fac ceva cu ifuri, gen vectorialpx, insa nu stiam exact sintaxa.
Am facut din prima cum a scris alexx_utza (ma rog, cu modificarile specifice pentru cazul meu, sintaxa insa identica) si a mers din prima.
Ce sa zic, superb... elegant si superscurt..
Cred ca si varianta lui kyron e cam la fel, sunt convins ca merg toate insa daca a mers prima cea a alexutzei, nu le-am mai incercat. Multumesc inca odata tuturor.
Topic inchis.
Multumesc tuturor, initial ma gandisem sa fac ceva cu ifuri, gen vectorialpx, insa nu stiam exact sintaxa.
Am facut din prima cum a scris alexx_utza (ma rog, cu modificarile specifice pentru cazul meu, sintaxa insa identica) si a mers din prima.
Ce sa zic, superb... elegant si superscurt..
Cred ca si varianta lui kyron e cam la fel, sunt convins ca merg toate insa daca a mers prima cea a alexutzei, nu le-am mai incercat. Multumesc inca odata tuturor.
Topic inchis.
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 5 vizitatori
