|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2004 Messages : 16 ![]() |
bonjour,
je débute en postgresql. j'utilise en mysql la requète suivante : select sum(if (SENS='Crédit',MTDEBOURS,-MTDEBOURS)) from DOSDEBOU WHERE DOSBASE_DOSSIER_KUNIK = "+DOB:m_DOSSIER_KUNIK qui me renvoie le solde (positif ou négatif) d'un dossier client. cette syntaxe est refusée par postgresql. j'ai testé avec select case when sens = 'Crédit' then MTDEBOURS else -MTDEBOURS end from DOSDEBOU WHERE DOSBASE_DOSSIER_KUNIK = "+DOB:m_DOSSIER_KUNIK la requète me retourne 2 colonnes (crédit et débit) y a t-il une astuce pour n'obtenir qu'1 colonne avec le solde ? merci |
|
|
00
|
|
|
#2 |
|
Membre émérite
![]() ![]() Inscription : mars 2002 Messages : 770 ![]() |
Bonsoir,
je regarde vite fait ton probleme , et premiere chose je comprend pas trop : = "+DOB:m_DOSSIER_KUNIK En pg, la concatenation de chaine de caracteres se fait avec l'operateur pipe pipe : || (alt gr + 6) exemple : WHERE monchamp = 'toto'||unautrechamp sinon ce qui devrait fonctionner ( a tester) : Code :
SELECT SUM(CASE WHEN sens = 'Crédit' THEN MTDEBOURS ELSE -MTDEBOURS END) AS total FROM DOSDEBOU |
|
|
00
|
|
|
#3 |
|
Candidat au titre de Membre du Club
![]() Inscription : avril 2004 Messages : 16 ![]() |
merci beaucoup.
de plus cette syntaxe fonctionne indifférement avec mysql et postgresql. la fin de la condition DOB:m_DOSSIER_KUNIK est une variable externe. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com