Bonjour,
Je dois créer une Vue et souhaite renseigner les données de Trois colonnes avec des CASE WHEN. Je travaille sur Sage (progiciel compta) et je vais chercher dans la Table Ecriture des données des comptes "CG_Num" qui commencent par un 6 (Achats) ou un 7 (Ventes) soit environ 15000 lignes de données.
En fonction du Numéro de compte je souhaite définir dans ma vue les colonnes "Tri, Code et Désignation". Je serai le faire en faisant 3 CASE (1 par colonne) mais bon, il y a près de 200 lignes de CASE à écrire à chaque fois. Ci dessous ce à quoi ça ressemble en partie:
Ceci n'est tout petit échantillon et je souhaiterai pouvoir faire quelque chose du genre:
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 SELECT Tri = '', Code = '', DATE = E.JM_Date, Designation = CASE LEFT(E.CG_Num,2) WHEN 70 THEN CASE LEFT(E.CG_Num,4) WHEN 7043 THEN 'Maçonnerie' WHEN 7044 THEN 'Charpente' WHEN 7045 THEN 'Couverture Tuile' WHEN 7041 THEN 'Menuiserie' WHEN 7042 THEN 'Platrerie' WHEN 7040 THEN 'Carrelage' WHEN 7088 THEN CASE LEFT(E.CG_NUM,6) WHEN 708801 THEN 'Electricité' WHEN 708804 THEN 'Plomberie' WHEN 708802 THEN CASE WHEN E.CG_NUM = 70880220 THEN 'Prorata' END ELSE 'Autres Produits' END ELSE 'Autres Produits' END
Vous l'aurez compris mon niveau en SQL est un peu limité. Donc si je pouvais avoir une aide sur la syntaxe que je n'arrive pas à trouver je suis preneur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CASE LEFT(E.CG_Num,2) WHEN 70 THEN CASE LEFT(E.CG_Num,4) WHEN 7043 THEN Tri = 1 Code = 10 Designation = 'Maçonnerie' WHEN 7044 THEN 'Charpente' Tri = 2 Code = 10 Designation = 'Charpente'
Merci d'avance
Partager