[Résolu] Comment splitter une ligne en deux lignes dans une requête ?

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.
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

[Résolu] Comment splitter une ligne en deux lignes dans une requête ?

Message par cegtio »

Bonjour la communauté,
voici mon problème (exemple fictif) : dans une table, j'ai les infos suivantes :

Code : Tout sélectionner

ID		DATE_PRESTATION	DATE_PAIEMENT_A	DATE_PAIEMENT_B		PAIEMENT_A	PAIEMENT_B
0		16/01/20	   20/02/20.   22/02/20                     10                 15
Je devrais réussir à créer une requête qui me permettrait de splitter (dupliquer partiellement) les lignes (dans l'exemple, il n'y en a qu'une) si elle ont une valeur en PAIEMENT_B (ce qui n'est pas le cas de toutes les lignes, par contres toutes ont au moins une valeur en PAIEMENT_A).
Voici ce que je voudrais réussir à construire comme requête :

Code : Tout sélectionner

ID		DATE_PRESTATION.      DATE_PAIEMENT_A      DATE_PAIEMENT_B.    PAIEMENT_A.   PAIEMENT_B
0		16/01/20                    20/02/20                             10	
0		16/01/20                                      22/02/20                         15

Serai-ce possible ? J'ai fait des recherches avec UNION qui aurait répondu à mon problème. Hélas, cela ne peut pas être intégré dans une requête.

Je joins l'exemple fictif en pièce jointe.

Merci pour vos suggestions.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par cegtio le 18 sept. 2023 08:54, modifié 1 fois.
LibreOffice 7.5 sous MacOS 10.15.7
Avatar de l’utilisateur
charlie.it
Membre OOrganisé
Membre OOrganisé
Messages : 56
Inscription : 03 mai 2015 12:28

Re: Comment splitter une ligne en deux lignes dans une requête ?

Message par charlie.it »

J'ai essayé comme ça et ça marche

Code : Tout sélectionner

SELECT "ID", "DATE_PRESTATION", "DATE_PAIEMENT_A", NULL AS "DATE_PAIEMENT_B" , "PAIEMENT_A", NULL AS "PAIEMENT_B" FROM "Table1"
UNION
SELECT "ID", "DATE_PRESTATION", NULL AS "DATE_PAIEMENT_A", "DATE_PAIAMENT_B", NULL AS "PAIEMENT_A", "PAIEMENT_B"  FROM "Table1"
Ou avec une seule date de paiement

Code : Tout sélectionner

SELECT "ID", "DATE_PRESTATION", "DATE_PAIEMENT", "PAIEMENT_A", NULL AS  "PAIEMENT_B" FROM "Table1"
UNION
SELECT "ID", "DATE_PRESTATION", "DATE_PAIEMENT", NULL AS  "PAIEMENT_A","PAIEMENT_B"  FROM "Table1"
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Apache Open Office 4.1.14 / LibreOffice 7.2.6.2 - macOS 10.13.6 High Sierra (Mac 27" mi-2011 - SSD 530 GB - 12 GB Ram)
Administrateur dans le forum italien de AOO.
Je m'excuse mais je ne connais pas le français. J'utilise un traducteur.
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

Re: Comment splitter une ligne en deux lignes dans une requête ?

Message par cegtio »

Merci pour votre réponse.
Hélas, de mon côté, cela fonctionne si j'exécute la commande SQL. Mais pas si je crée une requête. Dans ce cas, j'ai le message d'erreur suivant:

Code : Tout sélectionner

The given command is not a SELECT statement. Only queries are allowed.
LibreOffice 7.5 sous MacOS 10.15.7
Avatar de l’utilisateur
charlie.it
Membre OOrganisé
Membre OOrganisé
Messages : 56
Inscription : 03 mai 2015 12:28

Re: Comment splitter une ligne en deux lignes dans une requête ?

Message par charlie.it »

Sélectionnez l'icône "Exécution directe" avant d'exécuter la requête.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Apache Open Office 4.1.14 / LibreOffice 7.2.6.2 - macOS 10.13.6 High Sierra (Mac 27" mi-2011 - SSD 530 GB - 12 GB Ram)
Administrateur dans le forum italien de AOO.
Je m'excuse mais je ne connais pas le français. J'utilise un traducteur.
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

Re: Comment splitter une ligne en deux lignes dans une requête ?

Message par cegtio »

Bonjour, merci pour votre réponse très précise. Mais comme je l'ai indiqué, je ne cherche pas à faire un commande SQL directe mais bien une requête, qui va me permettre de visualiser la table grâce à l'onglet "requête" dans le volet latéral de Base.
LibreOffice 7.5 sous MacOS 10.15.7
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Comment splitter une ligne en deux lignes dans une requête ?

Message par jeanmimi »

Bonjour,
cegtio a écrit : 17 sept. 2023 17:49 mais bien une requête, qui va me permettre de visualiser la table grâce à l'onglet "requête" dans le volet latéral de Base.
Elle sera bien sûr affichée dans le volet des requêtes, et elle peut même être affichée dans un formulaire.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

Re: Comment splitter une ligne en deux lignes dans une requête ?

Message par cegtio »

Bonjour, merci pour votre réponse. Je ne comprends pas comment puis-je faire un "union" dans un requête affichée dans le volet latéral "Requetes". Accepteriez-vous de m'aider ?
LibreOffice 7.5 sous MacOS 10.15.7
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 16960
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: Comment splitter une ligne en deux lignes dans une requête ?

Message par jeanmimi »

cegtio a écrit : 17 sept. 2023 18:39 requête affichée dans le volet latéral "Requetes"
En saisissant plusieurs écritures, l'affichage Document permet de visualiser les premières lignes de la requête.
Pour voir toutes les lignes, lorsqu'il y aura de nombreuses écritures, il sera plus ergonomique d'afficher la requête dans un formulaire.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
cegtio
Membre OOrganisé
Membre OOrganisé
Messages : 68
Inscription : 09 avr. 2023 18:50

Re: Comment splitter une ligne en deux lignes dans une requête ?

Message par cegtio »

waw fantastique, merci ! (j' n'avais compris que malgré le message d'erreur, cela fonctionne quand j'ouvre la requete via le volet latéral).
LibreOffice 7.5 sous MacOS 10.15.7