OVH Cloud OVH Cloud

"Update" et "Case"???

2 réponses
Avatar
bany
bonsoir à tous,

voila, debutant en SQL, j ai un petit soucis:

je dois faire un update d une table, j y arrive en faisant trois requetes de
suite,
mais le but est de n en faire qu une!

j arrive donc a faire un select en utilisant case

select nom,salairebrut,
CASE
WHEN salairebrut < 15000 THEN salairebrut* 1.03
WHEN salairebrut >= 15000 and salairebrut <= 35000 THEN
salairebrut* 1.02
WHEN salairebrut > 35000 THEN salairebrut* 1.005
ELSE salairebrut
END as newsalaire
from pilote

ceci me donne bien le resultat escompté!(à l affichage!!!)

ensuite je voudrais inclure et modifier cette requete pour faire le update

mais la, rien a faire!

c'est surement un truc simple, mais que je ne connais pas, et qui m a deja
couté
un apres midi!

merci bcp pour votre aide, bonne soiree

Jean jacques

2 réponses

Avatar
Laurent Moreau
Essai cela: (je n'ai pas testé la requete)

UPDATE pilote
SET newsalaireÊSE
WHEN salairebrut < 15000 THEN salairebrut* 1.03
WHEN salairebrut BETWEEN 15000 AND 35000 THEN salairebrut* 1.02
WHEN salairebrut > 35000 THEN salairebrut* 1.005
ELSE salairebrut
END


Laurent.




"bany" wrote in message
news:br2tou$efv$
bonsoir à tous,

voila, debutant en SQL, j ai un petit soucis:

je dois faire un update d une table, j y arrive en faisant trois requetes


de
suite,
mais le but est de n en faire qu une!

j arrive donc a faire un select en utilisant case

select nom,salairebrut,
CASE
WHEN salairebrut < 15000 THEN salairebrut* 1.03
WHEN salairebrut >= 15000 and salairebrut <= 35000 THEN
salairebrut* 1.02
WHEN salairebrut > 35000 THEN salairebrut* 1.005
ELSE salairebrut
END as newsalaire
from pilote

ceci me donne bien le resultat escompté!(à l affichage!!!)

ensuite je voudrais inclure et modifier cette requete pour faire le update

mais la, rien a faire!

c'est surement un truc simple, mais que je ne connais pas, et qui m a deja
couté
un apres midi!

merci bcp pour votre aide, bonne soiree

Jean jacques





Avatar
bany
Merci beaucoup ca marche!!!!!!!!!!!!
(j ai juste remplace new salaire par salaire brut, car j essayais les
alias!)

j ai encore bcp à apprendre!!!!

bonne journee, je repars poser une autre question... ;-)

jean jacques


"Laurent Moreau" a écrit dans le message
de news:br46eo$sq0$
Essai cela: (je n'ai pas testé la requete)

UPDATE pilote
SET newsalaireÊSE
WHEN salairebrut < 15000 THEN salairebrut* 1.03
WHEN salairebrut BETWEEN 15000 AND 35000 THEN salairebrut*


1.02
WHEN salairebrut > 35000 THEN salairebrut* 1.005
ELSE salairebrut
END


Laurent.




"bany" wrote in message
news:br2tou$efv$
> bonsoir à tous,
>
> voila, debutant en SQL, j ai un petit soucis:
>
> je dois faire un update d une table, j y arrive en faisant trois


requetes
de
> suite,
> mais le but est de n en faire qu une!
>
> j arrive donc a faire un select en utilisant case
>
> select nom,salairebrut,
> CASE
> WHEN salairebrut < 15000 THEN salairebrut* 1.03
> WHEN salairebrut >= 15000 and salairebrut <= 35000 THEN
> salairebrut* 1.02
> WHEN salairebrut > 35000 THEN salairebrut* 1.005
> ELSE salairebrut
> END as newsalaire
> from pilote
>
> ceci me donne bien le resultat escompté!(à l affichage!!!)
>
> ensuite je voudrais inclure et modifier cette requete pour faire le


update
>
> mais la, rien a faire!
>
> c'est surement un truc simple, mais que je ne connais pas, et qui m a


deja
> couté
> un apres midi!
>
> merci bcp pour votre aide, bonne soiree
>
> Jean jacques
>
>
>