[Résolu] Transfert de données entre tables

Discussions sur le module de base de données Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est dédiée au module Base et plus particulièrement sur le langage SQL ou sur les connexions aux SGBD tiers. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Pour accélérer les réponses, vous pouvez mettre en ligne votre base en joignant un fichier ODB : comment faire.
martinterrier
Membre OOrganisé
Membre OOrganisé
Messages : 97
Inscription : 21 avr. 2021 17:28

[Résolu] Transfert de données entre tables

Message par martinterrier »

Bonjour à tous,

Suite à une évolution de ma base de données, je souhaite passer des informations (en l’occurrence, de date), d'un champ d'une table esclave vers une table maitresse.

Dans l'exemple en PJ, je souhaite que les données du champ DATE de ma table T_DATES soit transféré au champs DATE de ma table T_SAISIE. A terme, le champs T_DATES.DATE sera supprimé.

Je tombe sur deux difficultés que je ne parviens pas à résoudre par des techniques "librecalc" qui consistaient à exporter les différentes tables pour y intégrer des informations puis les réimporter.

- dans le champs T_DATES.DATE, je peux avoir plusieurs dates associées à un seul T_SAISIE.ID_SAISIE via ma table intermédiaire T_DETAILS_MEC.
- Tous les T_SAISIE.ID_SAISIE n'ont pas nécessairement de T_DATES.DATE associées (il s'agit d'une date qui ne concerne pas tous les ID_SAISIE)

Pour la première problématique, ce n'est pas important de conserver les deux dates associées à T_SAISIE.ID_SAISIE 5 : seule la première sera conservée, ce que j'obtiens sans difficultés en associant les données via une requête (dont je peux supprimer les doublons après export sur calc) mais je ne parviens pas à intégrer le résultat de cette requête puisque tous les T_SAISIE.ID_SAISIE auxquels aucune T_DATES.DATE n'était initialement associé n'apparaissent dans cet export.

J'ai le sentiment que le SQL peut apporter une réponse, et cela m'intéresse de me lancer dans l'apprentissage du SQL, mais j'avoue ne pas trop savoir par quel bout commencer.

Merci par avance pour vos premières pistes, sur lesquelles je travaillerai volontiers pour bien en comprendre le sens (j'ai déjà testé et écarté IFNULL ce matin, qui ne correspond pas a priori à ce que je cherche!).

Bon weekend prolongé!
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par martinterrier le 21 sept. 2022 12:46, modifié 1 fois.
Obligation de version :
Libre Office 7.1.8.1 (x64) sous Windows 10
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 744
Inscription : 20 déc. 2017 14:45

Re: Transfert de données entre tables

Message par rollmops »

Bonjour,

En théorie, on ne fait jamais ce genre de transfert si le schéma relationnel est valide.
Une donnée est toujours récupérable si la relation entre tables est correctement posée.

Dans ton cas, tu ne pourras pas faire d'UPDATE global sans passer par une macro.
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
pulcinopio
Membre prOOscrit
Messages : 243
Inscription : 13 juil. 2022 17:13

Re: Transfert de données entre tables

Message par pulcinopio »

SELECT "T_SAISIE"."ID_SAISIE", "T_DATES"."DATE", "T_DETAILS_MEC"."ID_DETAILS_DATE" FROM "T_DETAILS_MEC", "T_DATES", "T_SAISIE" WHERE "T_DETAILS_MEC"."ID_DETAILS_DATE" = "T_DATES"."ID_DETAILS_DATE" AND "T_DETAILS_MEC"."ID_SAISIE" = "T_SAISIE"."ID_SAISIE"

De la sorte vous obtiendrez la vue de table jointe à ce courrier.

Tout en espérant que finalement vous parviendrez à affranchir votre esclave,

Meilleures salutations
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office 6.0.4 sur Ubuntu 18.04
martinterrier
Membre OOrganisé
Membre OOrganisé
Messages : 97
Inscription : 21 avr. 2021 17:28

Re: Transfert de données entre tables

Message par martinterrier »

Bonjour pulcinopio,

Merci pour cette réponse, que j'ai effectivement pu mettre en oeuvre.

Désolé de n'avoir pas clôturé le fil en juillet, j'avoue que cela m'est complètement sorti de l'esprit une fois la solution testée.

Merci encore et bon après-midi!
Obligation de version :
Libre Office 7.1.8.1 (x64) sous Windows 10
pulcinopio
Membre prOOscrit
Messages : 243
Inscription : 13 juil. 2022 17:13

Re: [Résolu] Transfert de données entre tables

Message par pulcinopio »

:D
Libre Office 6.0.4 sur Ubuntu 18.04