Pages: 1
- Sujet précédent - PG Admin - Table "etat" pour connaître le remplissage d'autres tables - Sujet suivant
#1 Fri 12 June 2020 14:48
- Alice.C
- Participant occasionnel
- Date d'inscription: 24 Sep 2015
- Messages: 15
PG Admin - Table "etat" pour connaître le remplissage d'autres tables
Bonjour,
J'administre pour plusieurs intercommunalités une bd statistiques dans laquelle existe une trentaine de tables sur des données liées à la population, aux logements, etc.
Je souhaiterais mettre en place une table qui me permettrait de connaître l'état de remplissage de toutes ces tables, à savoir connaître par interco si les données sont complètes, manquantes ou partielles.
Pour illustrer ce propos, en considérant les tables de départs population et logements, je souhaiterais créer la table remplissage sous la forme en exemple (voir fichiers joints).
J'ai fais quelques essais en créant la table remplissage puis en faisant un update comme ci-dessous
Code:
UPDATE remplissage SET "interco_A" = 'complet' FROM population WHERE remplissage.column_name = 'pop_12' AND population."pop_12" IS NOT NULL AND population.epci = 'interco_A'; UPDATE remplissage SET "interco_A" = 'pas de donnée' FROM population WHERE remplissage.column_name = 'pop_12' AND population."pop_12" IS NULL AND population.epci = 'interco_A'; UPDATE remplissage SET "interco_A" = 'partiel' WHERE "interco_A" IS NULL;
Résultat : cette requête est très moche mais surtout donne un résultat faux. Puisque je crois comprendre qu'à partir du moment où est détectée une valeur null, ma requête ne permet de faire la différence entre un remplissage partiel ou une donnée inexistante.
Quelqu'un peut-il m'aiguiller vers une solution svp ?
Cordialement,
AC
Dernière modification par Alice.C (Fri 12 June 2020 14:50)
Hors ligne
#2 Fri 12 June 2020 16:02
Re: PG Admin - Table "etat" pour connaître le remplissage d'autres tables
Bonjour,
Pas testée mais la requête suivante devrait faire le job :
Code:
WITH pop AS ( SELECT epci, CASE WHEN bool_and(pop12 is null) THEN 'pas de donnée' WHEN bool_and(pop12 is not null) THEN 'complet' ELSE 'partiel' END AS etat FROM population GROUP BY epci ) UPDATE remplissage SET "interco_A" = (SELECT etat FROM pop WHERE epci = 'interco_A') WHERE column_name = 'pop 12';
Dernière modification par jmarsac (Fri 12 June 2020 16:04)
Jean-Marie
Azimut
Hors ligne
#3 Mon 15 June 2020 10:31
- Alice.C
- Participant occasionnel
- Date d'inscription: 24 Sep 2015
- Messages: 15
Re: PG Admin - Table "etat" pour connaître le remplissage d'autres tables
Bonjour,
Cela fonctionne, merci pour votre aide !
Cordialement,
AC
Hors ligne
Pages: 1
- Sujet précédent - PG Admin - Table "etat" pour connaître le remplissage d'autres tables - Sujet suivant