Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/03/2005, 17h56   #1
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 16
Points : 11
Points : 11
Par défaut migration mysql > postgresql

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
jacques trepp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2005, 23h54   #2
Membre émérite
 
Avatar de hpalpha
 
Inscription : mars 2002
Messages : 770
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 770
Points : 833
Points : 833
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
hpalpha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2005, 10h05   #3
Candidat au titre de Membre du Club
 
Inscription : avril 2004
Messages : 16
Détails du profil
Informations forums :
Inscription : avril 2004
Messages : 16
Points : 11
Points : 11
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.
jacques trepp est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h11.


 
 
 
 
Partenaires

Hébergement Web