SOS - problème de requête

Le
Loïc Bourdon
Bonjour,
J'ai une table de séjours avec un identifiant de personne qui comporte
notamment 4 colonnes : Date entrée, heure entrée, date de sortie, heure de
sortie. On me demande d'afficher le nombre de présents pour chaque jour de
l'année (ça ça va) mais aussi présents à 9h00, 12h00, 17h00, 20h00 et là,
je ne sais pas du tout comment faire. Le format pour les heures est 720 pour
7h20 ou 1115 pour 11h15Pouvez-vous mayday mayday mayday svp ?

Merci
Ptitlouis
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jerome PAULIN
Le #21872341
Loïc Bourdon a écrit :
Bonjour,
J'ai une table de séjours avec un identifiant de personne qui comporte
notamment 4 colonnes : Date entrée, heure entrée, date de sortie, heure de
sortie. On me demande d'afficher le nombre de présents pour chaque jour de
l'année (ça ça va...) mais aussi présents à 9h00, 12h00, 17h00, 20h00 et là,
je ne sais pas du tout comment faire. Le format pour les heures est 720 pour
7h20 ou 1115 pour 11h15...Pouvez-vous mayday mayday mayday svp ?

Merci
Ptitlouis





Quelle système de base de données ?

Tes heures ne sont pas définies comme des temps, mais comme des entier ?

gg
Loïc Bourdon
Le #21872321
"Jerome PAULIN" de news: esr7pu$pa7$
Loïc Bourdon a écrit :
> Bonjour,
> J'ai une table de séjours avec un identifiant de personne qui


comporte
> notamment 4 colonnes : Date entrée, heure entrée, date de sortie, heure


de
> sortie. On me demande d'afficher le nombre de présents pour chaque jour


de
> l'année (ça ça va...) mais aussi présents à 9h00, 12h00, 17h00, 20h00 et


là,
> je ne sais pas du tout comment faire. Le format pour les heures est 720


pour
> 7h20 ou 1115 pour 11h15...Pouvez-vous mayday mayday mayday svp ?
>
> Merci
> Ptitlouis
>
>

Quelle système de base de données ?

Tes heures ne sont pas définies comme des temps, mais comme des entier ?

gg


Bonjour,
Le SGBDR est assez exotique (DBQ) mais utilise le SQL standard. La colonne
heure est un smallint.
Côme de Christen
Le #21872301
C'est juste la présentation (900 au lieu de 09h00) qui te pose souci ?
Tu peux dans ce cas très facilement créer une petite table Horaire qui gère la
correspondance (900 -> 09h00) pour toi et faire une jointure dans ton SQL
Jerome PAULIN
Le #21872291
Loïc Bourdon a écrit :
"Jerome PAULIN" de news: esr7pu$pa7$

Loïc Bourdon a écrit :

Bonjour,
J'ai une table de séjours avec un identifiant de personne qui





comporte

notamment 4 colonnes : Date entrée, heure entrée, date de sortie, heure





de

sortie. On me demande d'afficher le nombre de présents pour chaque jour





de

l'année (ça ça va...) mais aussi présents à 9h00, 12h00, 17h00, 20h00 et





là,

je ne sais pas du tout comment faire. Le format pour les heures est 720





pour

7h20 ou 1115 pour 11h15...Pouvez-vous mayday mayday mayday svp ?

Merci
Ptitlouis





Quelle système de base de données ?

Tes heures ne sont pas définies comme des temps, mais comme des entier ?

gg



Bonjour,
Le SGBDR est assez exotique (DBQ) mais utilise le SQL standard. La colonne
heure est un smallint.






il faut transformer tes dates/heures d'entree et de sortie en minutes
(histoire d'etre homogène) et ensuite tester si, a la minute qui
t'intéresse la personne etait deja entree mais pas encore sortie.

Soit X la date/heure ou s'effectue l'évaluation
Soit E la date/heure d'entrée
Soit S la date/heure de sortie

convertir E,S et X en minutes

et recherche les lignes ou E > X > S (ce sont peut etre des >= qu'il
faut utiliser)

Ca doit se faire pas trop difficilement avec les fonctions de gestion
des date et des CASE() ou IF()

gg
Côme de Christen
Le #21872281
Oups ! Pas forcément bien pigé la question moi , désolé
Oui il faut espérer que le SGBD ait un langage suffisamment étoffé.
Sinon pas trop le choix , logique applicative
ALain Montfranc
Le #21872271
Loïc Bourdon a écrit
Bonjour,
J'ai une table de séjours avec un identifiant de personne qui comporte
notamment 4 colonnes : Date entrée, heure entrée, date de sortie, heure de
sortie. On me demande d'afficher le nombre de présents pour chaque jour de
l'année (ça ça va...) mais aussi présents à 9h00, 12h00, 17h00, 20h00 et là,
je ne sais pas du tout comment faire. Le format pour les heures est 720 pour
7h20 ou 1115 pour 11h15...Pouvez-vous mayday mayday mayday svp ?

Merci
Ptitlouis



C'est pas plus dur que pour le faire jour par jour, tu rajoutes juste
une condition du type :

( date_entree < date or ( date_entree == date && heure_entree <= 900 ))
and
( date_sortie > date or ( date_sortie == date && heure_sortie >= 900 ))
Fred Brouard - SQLpro
Le #21872151
Loïc Bourdon a écrit :
Bonjour,
J'ai une table de séjours avec un identifiant de personne qui comporte
notamment 4 colonnes : Date entrée, heure entrée, date de sortie, heure de
sortie. On me demande d'afficher le nombre de présents pour chaque jour de
l'année (ça ça va...) mais aussi présents à 9h00, 12h00, 17h00, 20h00 et là,
je ne sais pas du tout comment faire. Le format pour les heures est 720 pour
7h20 ou 1115 pour 11h15...Pouvez-vous mayday mayday mayday svp ?

Merci
Ptitlouis




ajoutez à votre modèle de données un table avec en clef toutes les dates
heures en fraction :
DATEx 9h
DATEx 12h
DATEx 17h
DATEx 20h
DATEx + 1jour 9h
DATEx + 1jour 12h
DATEx + 1jour 17h
DATEx + 1jour 20h

dès lors une simple projection par jointure à ces lignes vous donnera
les comptage de présence, absences, etc...

A +


--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
Loïc Bourdon
Le #21862951
C'est pas plus dur que pour le faire jour par jour, tu rajoutes juste
une condition du type :

( date_entree < date or ( date_entree == date && heure_entree <= 900 ))
and
( date_sortie > date or ( date_sortie == date && heure_sortie >= 900 ))




Merci Alain, ça marche nickel...

Ptitlouis
ALain Montfranc
Le #21862941
Loïc Bourdon a écrit
C'est pas plus dur que pour le faire jour par jour, tu rajoutes juste
une condition du type :

( date_entree < date or ( date_entree == date && heure_entree <= 900 ))
and
( date_sortie > date or ( date_sortie == date && heure_sortie >= 900 ))




Merci Alain, ça marche nickel...




PS: si tu veux automatiser le truc (pour ne pas faire n requetes) tu
cree une table avec les horaires de calcul (900, 1200, 1700, 2000) et
tu fais une jointure de cette table avec ta requete initiale
Loïc Bourdon
Le #21840171
PS: si tu veux automatiser le truc (pour ne pas faire n requetes) tu
cree une table avec les horaires de calcul (900, 1200, 1700, 2000) et
tu fais une jointure de cette table avec ta requete initiale




Merci mais c'est déja parti :O))
Publicité
Poster une réponse
Anonyme