Bonjour ,
J'ai une Table Article (simplifiée)
et une table GRILLES (de pointure ou de taille)ARTICLE
CODE_ARTICLE INTEGER,
LIBELLE VARCHAR(30),
GRILLE SMALLINT // de 0 à 99 les codes 0,1,90..99 sont réservés
..
je veux empêcher l'édition/suppression des codes réservé (merci triggers)GRILLES
ID_GRILLE SMALLINT,
CODE_GRILLE VARCHAR(5),
INTITULE_GRILLE VARCHAR(30)
...
mais surtout , lors de l'affichage de la liste des grilles je veux indiquer si c'est possible ou non
pour cela je fait cette requête
Code SQL : 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 WITH U AS (SELECT GRILLE,COUNT(*) as N FROM ARTICLE GROUP BY 1) SELECT ID_GRILLE,CODE_GRILLE,LIBELLE_GRILLE, CASE ID_GRILLE WHEN 0 THEN 1 WHEN 1 THEN 1 WHEN 91 THEN 1 WHEN 92 THEN 1 WHEN 93 THEN 1 WHEN 94 THEN 1 WHEN 95 THEN 1 WHEN 96 THEN 1 WHEN 97 THEN 1 WHEN 98 THEN 1 WHEN 99 THEN 1 ELSE COALESCE(U.N,0) END AS EDITABLE FROM GRILLES LEFT JOIN U ON ID_GRILLE=U.GRILLE ORDER BY 1
J'aurais voulu simplifier la partie CASE WHEN
mais un
ne fonctionne pas (test avec fb 2.1 donne "token unknown <")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CASE WHEN (ID_GRILLE<2) THEN 1 WHEN (ID_GRILLE<91) THEN 1 ELSE COALESCE(U.N,0) END
Une solution ?
Partager