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 30/05/2005, 15h00   #1
Membre régulier
 
Avatar de champijulie
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 147
Points : 92
Points : 92
Par défaut pb avec un case

Bonjour,

j'ai un petit problème. Je suis en train de créer une vue avec des case en remplacemant de la fonction decode sous Oracle. Je vous donne la requête concernée:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE VIEW ddc_appia."VL_DOSSIERDIAETAPEDDC" ("IDDOSSIER", "NOMDOSSIER", "TYPEADS", "DATEDEPOT", "DATEDECISION", "NATUREDECISION", "TYPEDECISION", "GEOREFERENCE", "X", "Y", "ALTITUDE", "REFERENCESCADASTRALES", "DESIGNATIONBIEN") AS (
SELECT ddc_appia."DOSSIERDEPOT"."ID_DOSSIER" AS "IDDOSSIER", 
x."NOMDOSSIER", 
x."CODEADS" AS "TypeADS", DD."DATEDEPOT",
x."DECISIONDATESIGNATURE" AS "DateDecision",
("DECISIONPREEMPTION", case "DECISIONPREEMPTION" when 1 then varchar 'Favorable' when 0 then varchar 'Défavorable' end) AS "NatureDecision",
("DECISIONPREEMPTION", case "DECISIONPREEMPTION" when NULL then 'Null' else 'Préemption' end) AS "TypeDecision",
DD."PROVENANCE" AS "Georeference", 
DD."X", 
DD."Y",
DD."Z" AS "Altitude",
DD."REFERENCESCADASTRALES",
y."DESIGNATIONBIEN"
FROM (ddc_appia."DOSSIERDECISIONDIA"  RIGHT OUTER JOIN ddc_appia."DOSSIER" ON ddc_appia."DOSSIER"."ID_DOSSIER" = ddc_appia."DOSSIERDECISIONDIA"."ID_DOSSIER")x , ddc_appia."DOSSIERDEPOT" DD, (ddc_appia."DOSSIERDESCRIPTIONDIA" RIGHT OUTER JOIN ddc_appia."DOSSIER" ON ddc_appia."DOSSIER"."ID_DOSSIER" = ddc_appia."DOSSIERDESCRIPTIONDIA"."ID_DOSSIER")y
WHERE (ddc_appia."DOSSIER"."ID_DOSSIER" = ddc_appia."DOSSIERDEPOT"."ID_DOSSIER")
AND (x."CODEADS" = 'DA')
);
Il me renvoit alors l'erreur suivante:
Citation:
column "NATUREDECISION" has pseudo-type record
Je sais ce que cela veut dire mais je n'arrive malheureusement pas à corriger cette erreur.

Merci d'avance de ma répondre.
champijulie.
champijulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2005, 19h41   #2
Membre habitué
 
Inscription : mai 2002
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 131
Points : 142
Points : 142
Je ne me rappelle pas de la syntaxe DECODE, mais sous PostgreSQL, tu ne peux pas spécifier deux champs différents et les regrouper en un seul, sans concaténation.

Code :
("DECISIONPREEMPTION", case "DECISIONPREEMPTION" when 1 then varchar 'Favorable' when 0 then varchar 'Défavorable' end) AS "NatureDecision",
Dans ton cas, le "DECISIONPREEMPTION", devrait sauter.
Quentin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2005, 10h03   #3
Membre régulier
 
Avatar de champijulie
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 147
Points : 92
Points : 92
merci de ta réponse.
Malheureusement, je ne comprends pas ce que tu veux dire par dossierpreemption devrait sauter ni comment résoudre mon erreur.

Je te rapelle la syntaxe de decode d'Oracle:

Code :
decode(nom_colonne,val1,val2,[val1,val2,...,val_defaut).
Merci de préciser ta réponse si possible.
champijulie.
champijulie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2005, 12h41   #4
Membre habitué
 
Inscription : mai 2002
Messages : 131
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 131
Points : 142
Points : 142
Je parlais de la partie avant le CASE, à l'intérieur de la parenthèse, en fait. Désolé, c'était pas clair

Ce qui donnerait
Code :
(case "DECISIONPREEMPTION" when 1 then varchar 'Favorable' when 0 then varchar 'Défavorable' end) AS "NatureDecision",
Quentin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2005, 14h19   #5
Membre régulier
 
Avatar de champijulie
 
Inscription : mai 2005
Messages : 147
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 147
Points : 92
Points : 92
Maintenant ça marche .
Merci beaucoup.
Ca va me permettre de bien avancer .
champijulie.
champijulie 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 20h42.


 
 
 
 
Partenaires

Hébergement Web