Bonjour,
Si j'ôte le deuxième CASE...END, la requête marche...
Mais avec le deuxième CASE...END (colonne TOTAL), le serveur me dit que la base ne connait pas les champs "ANC_NUM_STUCT" ni "NB_ABD".
Ce sont des alias définis au préalable...
Je sais que ma syntaxe n'est pas bonne, mais je ne trouve pas la solution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
SELECT 
PA01 AS TYPE_ADH,
PA03 AS ANC_NUM_STUCT,
COUNT(ADIDEN) AS NB_ADH,
CASE 
WHEN PA01='AD' THEN '15'
WHEN PA01='FC' THEN '22,5'
WHEN PA01='FS' THEN '22,5'
WHEN PA01='PA' THEN '15'
WHEN PA01='CS' THEN 'NON-PART_NAT'
WHEN PA01='NA' THEN 'NON-PART_NAT'
WHEN PA01='AB' THEN 'CETTE VENTE SERA FACTUREE'
END AS UNITE_PART_NATIONALE,
CASE WHEN PA01='AD' THEN UNITE_PART_NATIONALE*NB_ADH
WHEN PA01='FC' THEN UNITE_PART_NATIONALE*NB_ADH
WHEN PA01='FS' THEN UNITE_PART_NATIONALE*NB_ADH
WHEN PA01='PA' THEN UNITE_PART_NATIONALE*NB_ADH
WHEN PA01='CS' THEN '0'
WHEN PA01='NA' THEN '0'
WHEN PA01='AB' THEN 'A DETERMINER'
END AS TOTAL
FROM
VUE_ADR AA,
VUE_CODAD BB,
VUE_ADHADM CC
WHERE (AA.ADIDEN = CC.ADM_IDEN) AND (AA.ADIDEN = BB.COIDEN) 
AND (ADM_DDU>'2014-12-31' AND PA03 LIKE '75%')
GROUP BY BB.PA01, BB.PA03 
ORDER BY BB.PA01, BB.PA03