[Résolu] Requête sur tables liées : extraire clients sans facture

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.
Csarcey
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 23 mars 2023 11:00

[Résolu] Requête sur tables liées : extraire clients sans facture

Message par Csarcey »


La modération vous a écrit: Encore une fois : titre modifié pour plus de clarté
Veillez à faire preuve d'inventivité pour refléter le problème exposé.
Un titre explicite n'est pas pour vous mais pour tous ceux effectuant des recherches.

Bonsoir,
Une petite question concernant des tables liées.
Une table de clients A est liée à une table des factures clients B dans une relation de 1 à n.
Ma question : Est-il possible de créer une requête sortant la liste des clients qui n'ont aucune facture ?
Merci de votre aide.
Dernière modification par Csarcey le 05 avr. 2023 16:25, modifié 1 fois.
LibreOffice 25.2.1.2 sous MacOS Séquoia 15.3.2
godefroy
Membre prOOscrit
Messages : 106
Inscription : 18 févr. 2023 18:54

Re: Requête sur des tables liées

Message par godefroy »

Salut,

Code : Tout sélectionner

Select "clients.nomclient", "factures.numérofacture", "factures.montant" From "clients", "factures" Where "factures.montant" = 0
Libre Office 6.0.7 Ubuntu 18.04
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 744
Inscription : 20 déc. 2017 14:45

Re: Requête sur des tables liées

Message par rollmops »

Bonjour,


Csarcey a écrit : 04 avr. 2023 20:51 Une table de clients A est liée à une table des factures clients B dans une relation de 1 à n.
Ma question : Est-il possible de créer une requête sortant la liste des clients qui n'ont aucune facture ?
Il faut faire une première requête qui liste les clients avec facture puis faire une exclusion avec la clause NOT EXISTS.
Il doit y avoir des exemples sur le forum.
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
Csarcey
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 23 mars 2023 11:00

Re: Requête sur tables liées : extraire clients sans facture

Message par Csarcey »

Merci beaucoup pour votre aide.
LibreOffice 25.2.1.2 sous MacOS Séquoia 15.3.2
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Re: [Résolu] Requête sur tables liées : extraire clients sans facture

Message par jeanmimi »

Je ne vois pas cette commande NOT EXISTS dans le Guide HSQLDB, par contre, on trouve :

Code : Tout sélectionner

NULLIF ( "Facture", 0 )
ce qui permet d'afficher les clients qui n'ont pas de facture indiquée dans le champ Facture.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
godefroy
Membre prOOscrit
Messages : 106
Inscription : 18 févr. 2023 18:54

Re: Requête sur des tables liées

Message par godefroy »

Csarcey a écrit : 04 avr. 2023 20:51 Est-il possible de créer une requête sortant la liste des clients qui n'ont aucune facture ?
Mon humble avis:

Code : Tout sélectionner

SELECT "nomclient", "montant" FROM "Factures" WHERE "montant" IS NULL
Slts

Godefroy
Dernière modification par Oukcha le 06 avr. 2023 08:40, modifié 1 fois.
Raison : Citation réduite à l'essentiel
Libre Office 6.0.7 Ubuntu 18.04
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 744
Inscription : 20 déc. 2017 14:45

Re: [Résolu] Requête sur tables liées : extraire clients sans facture

Message par rollmops »

Re,
jeanmimi a écrit : 05 avr. 2023 18:46 Je ne vois pas cette commande NOT EXISTS dans le Guide HSQLDB
rollmops a écrit : 05 avr. 2023 06:23 Il doit y avoir des exemples sur le forum.
Cette clause dans WHERE est standard en SQL. On la trouve dans le guide pour du UPDATE.
On peut aussi utiliser [NOT] IN...

godefroy a écrit : 06 avr. 2023 05:51Mon humble avis:

Code : Tout sélectionner

SELECT "nomclient", "montant" FROM "Factures" WHERE "montant" IS NULL
Csarsey n'a pas fourni de base exemple. :evil:
Cependant, je ne vois pas comment il serait possible d'extraire des clients sans facture avec cette requête ou l'autre que vous avez proposée.
Quand un client n'a pas de facture, son id n'est logiquement pas présent dans la table.
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
godefroy
Membre prOOscrit
Messages : 106
Inscription : 18 févr. 2023 18:54

Re: [Résolu] Requête sur tables liées : extraire clients sans facture

Message par godefroy »

Bien le bonjour Rollmops,

Je partage votre point de vue, mais je n'osais pas le dire car j'avais peur d'être mis en punition...

Godefroy :D
Libre Office 6.0.7 Ubuntu 18.04
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 744
Inscription : 20 déc. 2017 14:45

Re: [Résolu] Requête sur tables liées : extraire clients sans facture

Message par rollmops »

godefroy a écrit : 06 avr. 2023 06:20 Je partage votre point de vue, mais je n'osais pas le dire car j'avais peur d'être mis en punition...
Proposer des solutions qui n'en sont pas, c'est celui qui pose la question que vous punissez en lui donnant de fausses pistes. :fou:
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)
godefroy
Membre prOOscrit
Messages : 106
Inscription : 18 févr. 2023 18:54

Re: [Résolu] Requête sur tables liées : extraire clients sans facture

Message par godefroy »

Mon cher Rollmops,

Qui aime bien, châtie bien..... :bravo:
Libre Office 6.0.7 Ubuntu 18.04
Csarcey
Membre lOOyal
Membre lOOyal
Messages : 34
Inscription : 23 mars 2023 11:00

Re: [Résolu] Requête sur tables liées : extraire clients sans facture

Message par Csarcey »

Bonjour,
Ne nous fâchons pas.
Ci-joint la requête qui fonctionne !

Code : Tout sélectionner

SELECT DISTINCT "Personnes"."ID", "Personnes"."Pnom", "Personnes"."Pprénom", "Personnes"."Pabon", "Personnes"."Padresse11", "Personnes"."Padresse21", "Personnes"."Pcp1", "Personnes"."Pville1", "Personnes"."Ppays1", "Personnes"."Ptél1", "Personnes"."Pportable", "Personnes"."Pcourriel" FROM "Relance", "Paiements", "Personnes" WHERE "Personnes"."Pabon" = TRUE AND NOT EXISTS ( SELECT * FROM "Paiements" WHERE "Personnes"."ID" = "Paiements"."Rpid" AND YEAR( "Ddatrel" ) = YEAR( "Rdate" ) AND ( "Relance"."Dpres2" = "Paiements"."Rop" OR "Relance"."Dpres1" = "Paiements"."Rop" ) )
Merci à tous
Dernière modification par Oukcha le 06 avr. 2023 08:59, modifié 1 fois.
Raison : Balises [code] et [/code] = lecture et sélection simplifiées de votre requête
LibreOffice 25.2.1.2 sous MacOS Séquoia 15.3.2
Avatar de l’utilisateur
rollmops
PassiOOnné
PassiOOnné
Messages : 744
Inscription : 20 déc. 2017 14:45

Re: [Résolu] Requête sur tables liées : extraire clients sans facture

Message par rollmops »

Csarcey a écrit : 06 avr. 2023 08:46 Ci-joint la requête qui fonctionne
rollmops a écrit : 06 avr. 2023 06:03 Csarsey n'a pas fourni de base exemple.
Sans un ODB, ça n'aide pas vraiment ceux qui tomberaient sur ce sujet.
OpenOffice 4.1.16 - Windows 11
+ LibO 25.8.5 (occasionnel pour test)