Bonjour, �a fait quelques jours que je me creuse la t�te (j'ai un trou!) sans r�ussir � trouver la solution, alors j'ai fini par me cr�er un compte pour vous demander un peu d'aide.
Voila, je tape mes requ�tes en postgresql.
J'ai une table dans laquelle j'ai des clients qui me passent une commande chaque ann�e.
Ma table est compos�e de trois variables, le nom du client, la date de la commande, le montant.
Dans cette table j'ai au moins 12 ans de commandes.
Je souhaite s�lectionner les clients dont le montant de la commande sur les trois derni�res ann�es (2020, 2021, 2022) est sup�rieur � 50 000�, et je souhaite afficher ces montant par une colonne repr�sentant chaque ann�e.
Je souhaite �galement savoir si ces clients ont d�pass� ce seuil deux ann�es cons�cutives.
J'extrais donc l'ann�e � partir de la date de commande pour ne conserver que celles de 2020, 2021 et 2022.
A l'aide d'un CASE WHEN j'affecte le montant � la colonne 2020, 2021 ou 2022.
Puis j'en profite pour tester si 2020 et 2021 ont d�pass� le seuil auquel cas on affiche positif dans une colonne 2020_2021, ou 2021 et 2022 ont d�pass� le seuil auquel cas on affiche positif dans une colonne 2021_2022.
Probl�me : j'ai un message d'erreur qui me dit les colonnes 2020, 2021 et 2022 ne sont pas cr��es donc on ne peut rien y affecter.
Voila mon code :
Et j'obtiens le message d'erreur suivant :
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
30
31
32
33
34
35
36
37
38
39
40
41 DROP TABLE IF EXISTS table_test ; CREATE TABLE table_test AS SELECT num_cli, date_com, mt_com, CASE WHEN EXTRACT(YEAR FROM date_com) = 2020 THEN mt_com ELSE 0 END AS resultat_2020, CASE WHEN EXTRACT(YEAR FROM date_com) = 2021 THEN mt_com ELSE 0 END AS resultat_2021, CASE WHEN EXTRACT(YEAR FROM date_com) = 2022 THEN mt_com ELSE 0 END AS resultat_2022, CASE WHEN resultat_2020 > 50000 AND resultat_2021 > 50000 THEN 'positif' ELSE NULL END AS positif_2020_2021, CASE WHEN resultat_2021 > 50000 AND resultat_2022 > 50000 THEN 'positif' ELSE NULL END AS positif_2021_2022, CASE WHEN positif_2020_2021 = 'positif' AND positif_2021_2022 = 'positif' THEN 'double positif' ELSE NULL END AS double_positif FROM table_comande WHERE EXTRACT(YEAR FROM date_com) IN (2020, 2021, 2022)Alors je soup�onne que la commande n'�tant cr��e qu'en sortie je ne puisse pas travailler dessus? Mais dans ce cas est-ce qu'il faut que je la cr��e au pr�alable? Avec une commande de type INSERT INTO?column "positif_2020_2021" does not exist
LINE 34 : WHEN positif_2020_2021 = 'positif' AND positif_2021_2022 =...
Merci par avance pour vos �clairages.
Partager