Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
me voilà de retour sur PB et donc sur PBadonf.
J'ai un problème avec une requête SQL. Est-ce que quelqu'un voit pourquoi elle ne fonctionne pas (sous Oracle)
select s.cod_prod, sum(s.poids), sum( if(s.dlc<sysdate,s.poids,0) ) as qte_perime from stock s group by s.cod_prod;
Dernière modification par abdelta (22-02-2010 09:22:59)
Hors ligne
Bonjour,
select s.cod_prod, sum(s.poids), sum( case when s.dlc<sysdate then s.poids else 0 end ) as qte_perime from stock s group by s.cod_prod;
Hors ligne
Merci, çà marche beaucoup mieux.
Mais pourquoi le IF ne marche pas ?
Il me semble pourtant avoir vu quelques exemples sur Internet de sum( if(expr,valtrue,valfalse) )
Hors ligne
A ma connaissance, le IF-THEN-ELSE existe en PL/SQL mais pas en SQL.
Sinon il y a aussi le Decode( expression, valeur1, resultat1, valeur2, resultat2, .... )
Hors ligne
erasorz a écrit:
A ma connaissance, le IF-THEN-ELSE existe en PL/SQL mais pas en SQL.
Sinon il y a aussi le Decode( expression, valeur1, resultat1, valeur2, resultat2, .... )
Exact. Seuls les CASE et le DECODE sont utilisables dans des requêtes SQL sous ORACLE.
Les autres ne sont présents qu'en PL-SQL.
Pour les mettre en oeuvre, il est toujours possible d'utiliser les procédures stockées.
Hors ligne
n'oublie pas le [RESOLU]
Hors ligne
erasorz a écrit:
n'oublie pas le [RESOLU]
J'ai perdu mes bonnes habitudes ; çà fait trop longtemps que je ne suis pas revenue sur le site ...
Hors ligne