[Résolu] choix du jour avec exclusion de date

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.
Avatar de l’utilisateur
cuicuilesoiseaux
Fraîchement OOthentifié
Messages : 4
Inscription : 06 mai 2013 00:27

[Résolu] choix du jour avec exclusion de date

Message par cuicuilesoiseaux »

Bonjour à tous ! Et bravo pour vos échanges qui m'enrichissent chaque jour. :super:

Je n'arrive pas à trouver la séquence SQL qui pourrait convenir à ma requête. :marto:
J'ai une table de soins planifiés du lundi au dimanche et son formulaire de saisie. J'ai réalisé des requêtes de tels façon que par exemple, je peux à l'aide de la requête lundi, afficher tous les soins du lundi. Les soins saisies du lundi reviennent tous les lundis en général. Mais parfois il y a un soin qui sera exceptionnel un lundi dans un mois, et celui là je ne veux pas qu'il apparaisse. (une prise de sang par exemple, dans un mois et pas avant). Il devra seulement apparaître lorsque se sera son tour pour le lundi qui vient. J'ai essayé bon nombre de combinaisons sans succès.

Par exemple avec la requête du lundi si j'écris :
SELECT "heure" AS "heure", "nom" AS "nom", "soin" AS "soin", "lundi" AS "lundi", "date" FROM "Table_soins" WHERE "lundi" = '1' ORDER BY "heure" ASC
J’obtiens tous les lundis, les habituels plus les lundis passé et les lundis à venir.

Si j'écris ceci
SELECT "heure" AS "heure", "nom" AS "nom", "soin" AS "soin", "lundi" AS "lundi", "date" FROM "Table_soins" WHERE "lundi" = '1' AND "date" = ( NOW( ) ) ORDER BY "heure" ASC
J'obtiens alors que celui de ce lundi et je perd tous les autres soins habituels du lundi.

J'ai essayé pas mal de combinaisons emprunté à divers pages qui traitent les SQL sur internet sans jamais trouver ce qu'il me faut.

Avez vous une réponse à mon problème ?

Par avance un très grand merci à ceux qui prendront le temps de me consacrer un peu de leur temps. :bravo:
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Dernière modification par cuicuilesoiseaux le 06 mai 2013 15:24, modifié 2 fois.
OpenOffice 3.4.1 LibreOffice 4.0.2.2 Windows XP
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: choix du jour avec exclusion de date

Message par jeanmimi »

Bonjour,
Lorsqu'on veut faire apparaitre des données entre deux dates, la fonction à utiliser est DATEDIFF, mais pour cela il faut entrer les dates et non pas un indice sur lundi, mardi, etc ...
En ce qui concerne tes Tables, tu devrais avoir une Table pour les noms et une autre pour les types de soins et ne stocker dans Table_soins que les ID correspondants.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Avatar de l’utilisateur
cuicuilesoiseaux
Fraîchement OOthentifié
Messages : 4
Inscription : 06 mai 2013 00:27

Re: choix du jour avec exclusion de date

Message par cuicuilesoiseaux »

Bonjour !

Merci Jeanmimi pour la vélocité de la réponse. :bravo:
J'ai fait exprès de mettre des indices et non pas des dates lors de la saisie des soins. Si je m'en tiens qu'à çà, cela fonctionne très bien. Avec mon option pour pouvoir ajouter des dates précises à venir, je dois dans l'état actuel des choses, supprimer les lignes des soins qui apparaissent et que je ne désirs pas imprimer du rapport correspondant de ma requête. C'est une petite contrariété que j'aurais voulu m'épargner. Par exemple juste avant d'imprimer les soins de ce lundi matin de mon rapport, si j'observe qu'il y à une prise de sang pour lundi dans trois semaines, je supprime la ligne et j'imprime ma feuille de route de soins. (c'est pour cela que j'ai laissé les dates apparaître lorsque ce n'est pas un soins habituel, afin d'avoir un visu de contrôle avant impression)

Mon objectif avec l'utilisation de Base, c'est de pouvoir rapidement saisir des soins sans en programmer les dates. En cochant simplement lundi, mardi etc, j'évite un travail et des sources d'erreurs considérable imputable à la saisie.
Si je dois réaliser 4 glycémies capillaires par jour à un diabétique, je ne réalise que 4 saisies dans le formulaire et j'aurai l'information, à vie, ou jusqu'à ce que je supprime un jour les soins. Si je mets une date précise ou une date de début ou de fin, je devrais avoir un œil sur la validité du soin habituel et si besoin reporter ou ressaisir les soins. C'est une source d'erreur, on édite une feuille de route de soins et on s'aperçoit par la suite qu'un soin n'a pas été effectué pour avoir mal géré les dates. C'est impossible avec mon système si simple et si efficace.

C'est aussi exprès que je n'ai qu'une table où tous est présent. S'il s'agit de gérer les soins à une patientèle fixe ( type maison de retraite ), je pourrai faire une table avec plus de paramètres d'identification du patient. Idem pour la table de soins, je pourrai nomenclaturer tous les soins possible et imaginable, et tous les traitements médicamenteux. Faire appel aux patients, soins, médicaments par listes déroulantes. Ce n'est pas mon objectif. Il y a des usines à gaz dans la profession qui font çà très bien et je ne peux pas rivaliser. Par contre lorsqu'il s'agit de noter sur un post-it les soins que l'on part faire, l'usine à gaz complique un peu la chose... :fou: :marto:

D'autant plus que j'offre par mon fichier Base une souplesse inégalée :
- saisie du nom comme on le souhaite, certain vont noter à la saisie le prénom du patient, d'autre le nom de famille, d'autre des initiales, un diminutif, le numéro de chambre, ou y apporter des modifications... etc... et on s'y retrouvera toujours.
- on peut saisir autre chose qu'un soins dans ce formulaire : chercher lundi une ordonnance chez un spécialiste, mardi 13h00 laisser la voiture de fonction au garagiste, mercredi réception des tubes pour prélèvement au labo à Lyon.

Avec ce complément d'information, avez vous une idée afin que les dates passées ou ou à venir n'apparaissent plus dans ma requête, pour éviter de devoir supprimer des lignes à l'édition du rapport de la requête concernée ?

Et merci encore. :super:
OpenOffice 3.4.1 LibreOffice 4.0.2.2 Windows XP
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: choix du jour avec exclusion de date

Message par Piaf »

Bonjour
Si j'ai compris, tu veux afficher (Je prend le lundi comme exemple) tous les lundis qui n'ont pas de date et seulement le lundi de la date du jour, dans ta requête.
Si j'ai bien compris, teste :

Code : Tout sélectionner

SELECT "heure" AS "heure", "nom" AS "nom", "soin" AS "soin", "lundi" AS "lundi", "date" FROM "Table_soins" WHERE "lundi" = '1' AND "date" IS NULL
UNION ALL
SELECT "heure" AS "heure", "nom" AS "nom", "soin" AS "soin", "lundi" AS "lundi", "date" FROM "Table_soins" WHERE "lundi" = '1' AND "date" = NOW( ) ORDER BY "heure" ASC
Lundis.png
en SQL direct.
Vérifie quand même que la date saisie corresponde bien au jour de la semaine.
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
cuicuilesoiseaux
Fraîchement OOthentifié
Messages : 4
Inscription : 06 mai 2013 00:27

Re: choix du jour avec exclusion de date

Message par cuicuilesoiseaux »

Bonjour et merci ! :super:

J'ai testé et cela me renvoie un message d'erreur.(=La commande n'est pas une instruction SELECT, Seules les requêtes sont autorisées).
J'ai souvent eu des message d'erreurs lorsque j'ai tenté différentes choses. Aussi je vais rafraichir mes versions d' OpenOffice et de LibreOffice afin de voir si çà marche.

Je ne savais qu'on pouvait formuler une union de sélection en SQL dans une même requête. Je reviens sur le forum après mes désinstallations et réinstallations.
OpenOffice 3.4.1 LibreOffice 4.0.2.2 Windows XP
Piaf
GourOOu
GourOOu
Messages : 5622
Inscription : 25 nov. 2011 18:07
Localisation : Guyane

Re: choix du jour avec exclusion de date

Message par Piaf »

Re
Tu dois exécuter la requêtes en SQL direct
SQLDirect.png
A+
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
Libre Office Version: 6.1.6 et Apache OpenOffice 4.1.6 Sur Xubuntu 18.04 AMD64
Avatar de l’utilisateur
cuicuilesoiseaux
Fraîchement OOthentifié
Messages : 4
Inscription : 06 mai 2013 00:27

[Résolu] choix du jour avec exclusion de date

Message par cuicuilesoiseaux »

Merci çà marche ! :bravo:

J'ai à présent les dernières versions d'OpenOffice et LibreOffice. Mais c'est que n'avais pas utilisé la séquence en SQL en direct.

Merci Mille fois Piaf ! :super:
OpenOffice 3.4.1 LibreOffice 4.0.2.2 Windows XP