Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1501 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU] - Probleme requete SQL - RETURN

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] - Probleme requete SQL - RETURN

n°1613871
Swaks
ABUSUS NON TOLLIT USUM
Posté le 21-09-2007 à 15:10:49  profilanswer
 

Bonjour
 
J'ai un petit souci avec un champ que je dois calculer :
 
Voici le calcul pour mon champ :
(SUM((A.M_INT_CREANCIERS - NVL(E.M_INT_CREANCIERS,0))*(CASE WHEN A.C_REGLE_NB_JOURS = 3 THEN 365 ELSE 360 END))/ (SUM(A.C_NB_CREDIT - NVL(E.C_NB_CREDIT,0)))
 
la table avec l'alias A et celle du mois courant et celle avec E est du mois precedent. Le probleme vient du SUM(A.C_NB_CREDIT - NVL(E.C_NB_CREDIT,0)) qui est parfois à 0 dans ce cas la mon champ doit être à zéro.
 
J'ai pensé faire un IF SUM(A.C_NB_CREDIT - NVL(E.C_NB_CREDIT,0)= 0 RETURN
 
 
Je suis sous ORACLE et je suis un noob
 
Merci


Message édité par Swaks le 21-09-2007 à 15:43:57
mood
Publicité
Posté le 21-09-2007 à 15:10:49  profilanswer
 

n°1613872
MagicBuzz
Posté le 21-09-2007 à 15:13:44  profilanswer
 

1/ Si t'es sous Oracle, utilise DECODE() au lieu de CASE. Même si c'est pas standard, à moins de correctement indenter le case, c'est bien plus lisible
2/ Il suffit d'englober tout ton patakesse dans un CASE (ou DECODE) de plus haut niveau...

n°1613875
Swaks
ABUSUS NON TOLLIT USUM
Posté le 21-09-2007 à 15:27:38  profilanswer
 

Yes merci pour cette réponse
 
Mais si je met par exemple :
DECODE((SUM((A.M_INT_CREANCIERS - NVL(E.M_INT_CREANCIERS,0))*(CASE WHEN A.C_REGLE_NB_JOURS = 3 THEN 365 ELSE 360 END))/ (SUM(A.C_NB_CREDIT - NVL(E.C_NB_CREDIT,0))),NULL,0)
 
Il va quand meme essayer de faire une division par 0  
 
Ce qu il faudrai c'est que si SUM(A.C_NB_CREDIT - NVL(E.C_NB_CREDIT,0))) = 0 alors on sorte
 
Quelque chose comme CASE(SUM(A.C_NB_CREDIT - NVL(E.C_NB_CREDIT,0))) = 0 THEN RETURN 0 END


Message édité par Swaks le 21-09-2007 à 15:29:06
n°1613876
MagicBuzz
Posté le 21-09-2007 à 15:28:42  profilanswer
 

non
 

Code :
  1. decode(SUM(A.C_NB_CREDIT - NVL(E.C_NB_CREDIT,0))), 0, 0, (SUM((A.M_INT_CREANCIERS - NVL(E.M_INT_CREANCIERS,0))*(CASE WHEN A.C_REGLE_NB_JOURS = 3 THEN 365 ELSE 360 END))/ (SUM(A.C_NB_CREDIT - NVL(E.C_NB_CREDIT,0))))


 
:o

n°1613877
Swaks
ABUSUS NON TOLLIT USUM
Posté le 21-09-2007 à 15:30:26  profilanswer
 

A ouais merci bien  :bounce:


Message édité par Swaks le 21-09-2007 à 15:30:49

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [RESOLU] - Probleme requete SQL - RETURN

 

Sujets relatifs
[RESOLU]Pb de compilation avec devC++Probleme expression reguliere
Petit problème avec le pattern d'un preg_replace()[RESOLU] [Ajax] Pb de binding objet avec Prototype
SQL Server 2005 - INSERT multiples[xhtml et CSS] Probleme de lien sur image..(truc de fou lol)[Résolu]
[SQL SERVER 2005] types numeriques, question existentielleProblème d'affichage avec certains ordinateur qui ont ie7
Aide sur requete SQL avec variable PHP 
Plus de sujets relatifs à : [RESOLU] - Probleme requete SQL - RETURN


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR