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 Tue 12 March 2019 17:49

Alexandre31
Participant occasionnel
Date d'inscription: 5 Feb 2018
Messages: 15

Fusionner 2 tables presque pareilles

Bonsoir,

J'ai 2 tables qui sont assez similaires et j'aimerais avoir une vue qui affiche la synthèse des 2; comment faut-il faire?

En gros, j'ai :
dans T1 les champs chp1, chp2, chp4, chp6
dans T2 les champs chp1, chp2, chp3, chp5

et je voudrais que
dans T0 les champs chp1, chp2, chp3, chp4, chp5, chp6

J'ai testé, et j'arrive en le faisant manuellement avec 2 requettes du style:
INSERT INTO T0 (chp1, chp2, chp4, chp6) FROM  T1 (chp1, chp2, chp4, chp6)
INSERT INTO T0 (chp1, chp2, chp3, chp5) FROM  T2 (chp1, chp2, chp3, chp5)
et j'obtiens ce que je veux, mais j'aimerais créer une vue, donc avoir une seule requette.

Auriez vous des conseils?

Merci!

Hors ligne

 

#2 Tue 12 March 2019 18:14

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: Fusionner 2 tables presque pareilles

Est-ce que les entités sont les mêmes d'une table à l'autre ou si en plus de transférer des valeurs dans des champs, vous additionnez le nombre d'entités de T1 et T2 pour former T0 ?

Hors ligne

 

#3 Tue 12 March 2019 18:30

Alexandre31
Participant occasionnel
Date d'inscription: 5 Feb 2018
Messages: 15

Re: Fusionner 2 tables presque pareilles

non, les entités ne sont pas les mêmes pour les champs communs (chp1, chp2 notamment qui correspondent à des points et des dates). Il n'y a donc pas de doublons, logiquement, à la fin, on a le nb de valeurs de T1+T2 = T0

Hors ligne

 

#4 Tue 12 March 2019 20:25

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1129

Re: Fusionner 2 tables presque pareilles

Salut,

Code:

CREATE VIEW T0 AS 
SELECT 
    chp1, chp2, chp4, chp6
FROM
    T1
UNION
SELECT 
    chp1, chp2, chp3, chp5
FROM
    T2

Dernière modification par tumasgiu (Tue 12 March 2019 20:26)

Hors ligne

 

#5 Thu 14 March 2019 16:37

Alexandre31
Participant occasionnel
Date d'inscription: 5 Feb 2018
Messages: 15

Re: Fusionner 2 tables presque pareilles

tumasgiu a écrit:

Salut,

Code:

CREATE VIEW T0 AS 
SELECT 
    chp1, chp2, chp4, chp6
FROM
    T1
UNION
SELECT 
    chp1, chp2, chp3, chp5
FROM
    T2


Je viens de tester, mais postgres me renvoie ça:

Code:

ERROR: ERREUR: chaque requête UNION doit avoir le même nombre de colonnes
.../...
SQL state: 42601

Ce qui veux dire que ça ne renvoie par chp1, chp2, chp3, chp4, chp5, chp6 ou bien, il manque quelque chose dans la requete ?
il est vrai que j'ai un champ de plus dans une des tables, mais même si je la supprime, pour mes 2 tables soient à 4 champs chacunes, mais à la sortie, au lieu de me faire 6 champs, il m'en fait que 4...

Dernière modification par Alexandre31 (Thu 14 March 2019 16:42)

Hors ligne

 

#6 Thu 14 March 2019 17:26

tumasgiu
Membre
Lieu: Ajaccio
Date d'inscription: 5 Jul 2010
Messages: 1129

Re: Fusionner 2 tables presque pareilles

Désolé,

comme à mon habitude je réponds trop vite,
je n'avais pas lu assez votre question.

Comme l'indique le moteur qui rejette votre requête,
une requête UNION requiert que les différentes sous requêtes
aient le même nombre de colonnes et que les types soient les mêmes.

Donc, dans vos sous requêtes, il faut inclure des colonnes avec des valeurs vides,
pour faire ce que vous désirez.

Code:

CREATE VIEW T0 AS 
SELECT 
    chp1, chp2, NULL as chp3, chp4, NULL as chp5, chp6
FROM
    T1
UNION
SELECT 
    chp1, chp2, chp3, NULL as chp4, chp5, NULL as chp6
FROM
    T2

Hors ligne

 

#7 Thu 14 March 2019 17:47

Alexandre31
Participant occasionnel
Date d'inscription: 5 Feb 2018
Messages: 15

Re: Fusionner 2 tables presque pareilles

Impecable tumasgiu, c'était aussi simple! je n'avais pas pensé au NULL as...
Merci beaucoup, bonne soirée, A+

Hors ligne

 

Pied de page des forums

Powered by FluxBB