[Résolu] requête sur champs Boolean

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.
Dom09
Fraîchement OOthentifié
Messages : 6
Inscription : 15 janv. 2021 18:01

[Résolu] requête sur champs Boolean

Message par Dom09 »

Bonjour,

je suis tout neuf sur ce forum.
J'essaie de créer une base pour gérer 4 chambres d'hôtes + table d'hôtes.
J'ai d'abord essayé de créer une table "Réservation" associée à un formulaire "Réservation" dans laquelle un liste déroulante permettait de sélectionner une des 4 chambres. Ca marche. Mais si un client réserve plus d'une chambre je ne sais plus comment faire.
Donc j'ai modifié la table avec un champ par chambre et un choix Oui/Non (Boolean) associé.
Mon problème est maintenant de pouvoir faire une requête sur cette table "Réservation" pour savoir combien de fois une chambre a été réservée. Je ne sais pas quelle fonction utiliser dans cette requête.

Je n'ai pas trouvé de réponse sur ce forum. C'est probablement très simple, mais...
bonne soirée
Dernière modification par micmac le 18 janv. 2021 20:57, modifié 4 fois.
Raison : [résolu] remplace [RESOLU]
OpenOffice 4.1.8 sous macOS version 10.15.5
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: requête sur champs Boolean

Message par jeanmi2403 »

Bonsoir,
Sans un document reflétant votre problème/question, il nous est difficile d'imaginer une solution.
Comment joindre un fichier
Cordialement,
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
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: requête sur champs Boolean

Message par jeanmimi »

Bonjour,
Dom09 a écrit : Mais si un client réserve plus d'une chambre je ne sais plus comment faire.
Il faut une Table supplémentaire.
Par exemple une Table_Reservations :
  • ID_resa de Type INTEGER Clé primaire
    ID_Client de Type INTEGER (dans le formulaire, le choix sera fait dans une Zone de liste)
    Date_resa
puis une Table_Details_Resa :
  • ID de Type INTEGER Clé primaire
    ID_resa de Type INTEGER
    ID_Chambre de Type INTEGER
Pour la Requête, il faut grouper sur un critère, le numéro de la chambre, et faire le nombre de dates ou de Booleans TRUE ou des ID

et comme le dit jeanmi2403, un fichier facilite l'aide.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Dom09
Fraîchement OOthentifié
Messages : 6
Inscription : 15 janv. 2021 18:01

Re: requête sur champs Boolean

Message par Dom09 »

Merci pour vos réponses rapides. Je vous joins la base en cours de conception.
Bonne soirée
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.8 sous macOS version 10.15.5
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: requête sur champs Boolean

Message par Dude »

Salut,
Dom09 a écrit :Mais si un client réserve plus d'une chambre je ne sais plus comment faire.
Comme toujours, si cela ne fonctionne pas, c'est parce que le modèle relationnel est incorrect.
Capture.png
Il apparaît qu'à une réservation, on ne peut affecter qu'une seule chambre (relation n, 1)
Si tu veux une relation n, n, il faudra créer une table intermédiaire.
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dom09
Fraîchement OOthentifié
Messages : 6
Inscription : 15 janv. 2021 18:01

Re: requête sur champs Boolean

Message par Dom09 »

Bonjour Dude,
OK, merci pour le conseil. Je vais chercher dans ce sens.
bonne journée.
OpenOffice 4.1.8 sous macOS version 10.15.5
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: requête sur champs Boolean

Message par Dude »

Comme toujours éviter de réinventer la roue mais plutôt enrichir ce qui existe :
En section Projets : Gestion de planning de réservation hôtelière

Merci d'ajouter [Résolu] et la coche verte à ton 1er message.
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: requête sur champs Boolean

Message par jeanmimi »

jeanmimi a écrit :Il faut une Table supplémentaire.
Dude a écrit :Si tu veux une relation n, n, il faudra créer une table intermédiaire.
Il n'y a plus qu'à.

Quant au calcul, il se fait dans une requête, comme l'exemple de celle dans la base jointe.
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
Avatar de l’utilisateur
jeanmi2403
SuppOOrter
SuppOOrter
Messages : 1398
Inscription : 18 janv. 2008 09:02
Localisation : Val de Marne

Re: requête sur champs Boolean

Message par jeanmi2403 »

Bonjour,
Dom09 a écrit :Mon problème est maintenant de pouvoir faire une requête sur cette table "Réservation" pour savoir combien de fois une chambre a été réservée. Je ne sais pas quelle fonction utiliser dans cette requête.
Sous cette forme, il me semble qu'il faut une requête par chambre, HSQL ne permettant pas plusieurs comptages dans une seule requête.
Bon WE,
Jean-Michel
LibO 7.5.9 et AoO 4.1.15 sur Windows 11 & Ubuntu 22.04
LibO 7.6 sur OpenSuse & Linux MX
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: requête sur champs Boolean

Message par jeanmimi »

J'avais été optimiste sur le calcul des champs booleans.
Ici, Pierre-Yves Samyn propose une méthode :
https://forum.openoffice.org/fr/forum/v ... ol%C3%A9en

Puis appliqué à la Base exemple jointe avec création de deux requêtes :
une avec l’instruction

Code : Tout sélectionner

CASE WHEN "donnée" = TRUE THEN 1 END
une pour faire le total
Base Cases à cocher.odb
et appliqué à ta Base :
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par jeanmimi le 17 janv. 2021 09:26, modifié 3 fois.
LibreOffice : Version : 24.2 (x64)(12 avril 2024)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Dom09
Fraîchement OOthentifié
Messages : 6
Inscription : 15 janv. 2021 18:01

Re: requête sur champs Boolean

Message par Dom09 »

Bonjour,
Capture.png
Il apparaît qu'à une réservation, on ne peut affecter qu'une seule chambre (relation n, 1)
Si tu veux une relation n, n, il faudra créer une table intermédiaire.[/quote]
J'ai recherché les tutos sur les relations n,n et je pense que les relations que j'avais écrites avec la table T_ConcerneProduits couvrent cette relation n,n entre une réservation (T_Reservation) et différentes chambres (T_Chambres).
Peut être que je me trompe ?

Bon dimanche à vous.
OpenOffice 4.1.8 sous macOS version 10.15.5
Avatar de l’utilisateur
Dude
IdOOle de la suite
IdOOle de la suite
Messages : 25181
Inscription : 03 mars 2006 07:45
Localisation : 127.0.0.1

Re: requête sur champs Boolean

Message par Dude »

Pour t'en assurer, remplis donc tes tables à la main puis tente de sortir les chambres d'une réservation.
Dom09
Fraîchement OOthentifié
Messages : 6
Inscription : 15 janv. 2021 18:01

Re: requête sur champs Boolean

Message par Dom09 »

Désolé, mais je n'ai pas assez d'expérience sur Base.
J'ai créé la table T_ConcernProduits entre T_Reservation et T_Chambres. D'après ce que je comprends de la relation n,n cette table T_ConcernProduits devrait premettre cette relation ?
Et quand je fais cette relation à la main, je ne vois pas d'erreur. Mais il y en a probablement une ?
Je joins ma table modifiée en pj.
Bon dimanche
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
OpenOffice 4.1.8 sous macOS version 10.15.5
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: requête sur champs Boolean

Message par jeanmimi »

requête sur cette table "Réservation" pour savoir combien de fois une chambre a été réservée
Avec cette dernière version, la requête affichera le nombre de chambres de cette manière :
Affichage requête.jpg
Après avoir supprimé les Relations entre les Tables, il faudrait aussi passer tous les ID en Auto-valeur, et modifier le format des champs Date de la Table Réservation.
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
Dom09
Fraîchement OOthentifié
Messages : 6
Inscription : 15 janv. 2021 18:01

Re: requête sur champs Boolean

Message par Dom09 »

Merci Jeanmimi pour ces infos. Je vais m'y remettre.
OpenOffice 4.1.8 sous macOS version 10.15.5