Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Fri 12 June 2020 16:02

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 566
Site web

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

 

Pied de page des forums

Powered by FluxBB