#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: 1144
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
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: 1144
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