Bonjour,
Il n'y a aucune raison pour que la création de la Vue échoue. Je viens de le
vérifier en créant deux tables nommées comme les vôtres (à peu près), puis en
exécutant l'instruction, tout va bien, je vous mets la copie d'écran en annexe.
N'oubliez pas pour faire apparaître la nouvelle vue (ou n'importe quelle table
que vous créeriez directement dans l'interface SQL) de faire Affichage -
Actualiser les Tables.
Par contre le UNION équivaut à un SELECT DISTINCT c'est à dire que vous ne
verrez apparaître qu'une seule fois une valeur. Si vous avez le même
identifiant dans chacune des tables d'origine, il n'apparaîtra qu'une fois dans
la table résultat.
On peut obtenir le même résultat en utilisant une table conventionnelle ainsi :
INSERT INTO "tblResultat" ("ID") SELECT "X1" FROM "TX" UNION SELECT "Y1" FROM
"TY";
Bien sûr il est possible d'écrire plusieurs requêtes INSERT-SELECT successives
si on veut vraiment obtenir les identifiants redondants, à condition qu'il n'y
ait pas de contrainte d'unicité sur la colonne (ID dans l'exemple). Ca vous
fait :
INSERT INTO "tblResultat" ("ID") SELECT "X1" FROM "TX";
INSERT INTO "tblResultat" ("ID") SELECT "Y1" FROM "TY";
Là.vous aurez tout le monde
Bonne fin de journée,
Thierry
> Le 26 avr. 2018 à 16:22, BOURSE <[email protected]> a écrit :
>
> Bonjour,
>
> Merci à tous pour vos réponses.
> J'ai mis en application vos conseils, le SELECT UNION fonctionne seul mais
> pas avec le CREATE VIEW. Voici mon code :
>
> SELECT "X1" FROM "TX" UNION SELECT "Z1" FROM "TZ
> ce code fonctionne mais ce n'est qu'un requête et ça ne me permet pas de
> créer une vue
>
> CREATE VIEW "VA" AS SELECT "X1" FROM "TX" UNION SELECT "Z1" FROM "TZ"
> ce code ne fonctionne pas "erreur de syntaxe dans l'expression SQL"
>
> CREATE VIEW "VA" ("V1") AS SELECT "X1" FROM "TX" UNION SELECT "Z1" FROM "TZ"
> ce code ne fonctionne pas "impossible de charger le contenu des données"
>
> Vous avez compris j'ai 2 tables TX et TZ, TX avec les champs X1 .... et TZ
> avec les champs Z1 ...... et je voudrais une table ou une vue VA avec un
> champ V1 qui contienne tous les X1 et Z1.
> Merci encore de vos prochains retours.
>
> Cordialement,
> Jean-Pierre FONTANGE
>
> -----Message d'origine-----
> De : Thierry Jeanneret [mailto:[email protected]]
> Envoyé : mardi 24 avril 2018 18:08
> À : [email protected]
> Cc : [email protected]
> Objet : Re: [fr-users] BASE SQL fusion de 2 tables
>
> Bonsoir,
>
> Vous pouvez faire une série de requêtes UNION.
>
> Par exemple pour créer une Vue, saisissez quelque chose comme :
>
> CREATE VIEW "VueGlobale" AS
> SELECT "IDClient" FROM "tblClients" UNION SELECT "IDFourniture" FROM
> "tblFournitures";
>
> Dans Outil - SQL de votre base de données HSQLDB.
>
> Il est clair que chaque requête doit comporter le nombre de colonnes de la
> Vue, quitte à y mettre un NUL.
>
> Vous pouvez aussi faire une requête simple et exploiter ses résultats par une
> macro, par exemple, ou dans un formulaire (mêmes instructions, sans le CREATE
> VIEW).
>
> C'est lent, mais ça fonctionne sans souci.
>
> Thierry
>
>
>
>> Le 24 avr. 2018 à 16:41, [email protected] a écrit :
>>
>> Bonjour
>>
>> Voici une nouvelle question envoyée à l'aide du formulaire de demande d'aide
>> (http://fr.libreoffice.org/get-help/poser-une-question/).
>> Si vous répondez, merci de penser à utiliser la fonction "répondre à tous"
>> de votre logiciel de courrier électronique de façon que le demandeur reçoive
>> une copie de votre réponse.
>>
>>
>> Email:: [email protected]
>> Sujet:: BASE SQL fusion de 2 tables
>> OS:: Windows 7
>> Version:: 6.0.x
>> Question:: Bonjour aux experts,
>> Je voudrais concaténer plusieurs tables.
>> J'ai 3 tables T1, T2 et T3 de structures différentes chacune avec un champ
>> identifiant (de contenu et de format différent).
>> Je voudrais obtenir une VUE (ou une table) contenant une seule colonne mais
>> avec la totalité des identifiants des 3 tables pour avoir une "master" table
>> contenant toutes les références.
>> J'ai tenté bcp de choses en vain.
>> Merci de tous vos conseils.
>> JP
>>
>>
>> --
>> Envoyez un mail à [email protected] pour vous
>> désinscrire Les archives de la liste sont disponibles à
>> https://listarchives.libreoffice.org/fr/users/
>> Tous les messages envoyés sur cette liste seront archivés publiquement
>> et ne pourront pas être supprimés
>
--
Envoyez un mail à [email protected] pour vous désinscrire
Les archives de la liste sont disponibles à
https://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne
pourront pas être supprimés