Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1074 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Group by et date

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Group by et date

n°985971
petitpata
Posté le 18-02-2005 à 11:57:25  profilanswer
 

Voici mon problème:
 
Je voudrais faire un group by sur un champ datetime mais uniquement sur une partie de la date. je voudrais que ma requete sql groupe par semaine dans le genre :  
 
SELECT plandate, nom, prénom FROM planning
GROUP BY plandate (week) <== probablement pas juste, mais ca explique ce que je voudrais faire.
ORDER BY nom
 
Le but c'est de grouper les champs par semaine et puis sur une semaine de classer par nom.
 
Merciii

mood
Publicité
Posté le 18-02-2005 à 11:57:25  profilanswer
 

n°986523
Beegee
Posté le 18-02-2005 à 18:55:36  profilanswer
 

Je comprends pas trop ce que tu veux faire ...
 
Comment veux-tu à la fois grouper par semaine, et afficher tous les noms et prénoms ???
 
A mon avis tu cherches qqch comme :
 
SELECT TO_CHAR(plandate, 'YYYY'), TO_CHAR(plandate, 'WW'), nom, prénom
FROM planning
ORDER BY TO_CHAR(plandate, 'YYYY'), TO_CHAR(plandate, 'WW'), nom;
 
(exemple sous Oracle, ou le format de date WW est le numéro de la semaine, et YYYY est l'année)
 
Mais la seule subtilité ici, à part le tri, est de faire apparaître le numéro de la semaine, pour que le traitement derrière détecte le changement de semaine.

n°988137
petitpata
Posté le 21-02-2005 à 10:51:14  profilanswer
 

Effectivement je vais devoir donner un peu plus d'explication sur ma table pour aider à la compréhension.
 
La BD existait avant, donc inutile de me faire la réflexion que les champs sont redondants etc, je le sais ;)
 
La table de planning est composée des champs qui suivent : une date, une heure de début, une heure de fin, le nom du professeur et le nom de l'éleve (pour simplifier)
 
Pour plus de visibilité quand j'affiche le planning, je fais un cadre autour d'une semaine complete de rendez vous. Je vérifie chaque ligne pour voir si elle est bien de la semaine courante et sinon je ferme le cadre. Par conséquant, j'aimerais dans ce cadre pourvoir faire différents tris (date, heure de début, nom,...). Si je fais le tri sans grouper au préalable toutes mes informations par semaine, je vais me retrouver avec plein de petits cadres, ce qui ne correspond pas du tout au résultat que je recherche. Donc avant de trier par nom, je devrais grouper par semaine.
 
C'est plus compréhensible ou c'est toujours du chinois ? (j'ai conscience que parfois ce genre d'explications peuvent sembler très confuses) :)


Message édité par petitpata le 21-02-2005 à 10:57:11
n°988142
petitpata
Posté le 21-02-2005 à 10:55:02  profilanswer
 

Beegee a écrit :

Je comprends pas trop ce que tu veux faire ...
 
Comment veux-tu à la fois grouper par semaine, et afficher tous les noms et prénoms ???
 
A mon avis tu cherches qqch comme :
 
SELECT TO_CHAR(plandate, 'YYYY'), TO_CHAR(plandate, 'WW'), nom, prénom
FROM planning
ORDER BY TO_CHAR(plandate, 'YYYY'), TO_CHAR(plandate, 'WW'), nom;
 
(exemple sous Oracle, ou le format de date WW est le numéro de la semaine, et YYYY est l'année)
 
Mais la seule subtilité ici, à part le tri, est de faire apparaître le numéro de la semaine, pour que le traitement derrière détecte le changement de semaine.


J'aime bien ta solution mais le TO_CHAR par ODBC-->ACESS il aime pas trop :(

n°988394
moi23372
Posté le 21-02-2005 à 13:52:00  profilanswer
 

TO_CHAR (plandate, 'YYYY') en ACCESS devient YEAR(plandate)
 
en ce qui concerne TO_CHAR (plandate, 'WW') j'en ai aucune idée.

n°988529
petitpata
Posté le 21-02-2005 à 14:47:30  profilanswer
 

moi23372 a écrit :

TO_CHAR (plandate, 'YYYY') en ACCESS devient YEAR(plandate)
 
en ce qui concerne TO_CHAR (plandate, 'WW') j'en ai aucune idée.


Merci bien, ca me donne une piste, je vais chercher! :)

n°988670
petitpata
Posté le 21-02-2005 à 16:34:56  profilanswer
 

moi23372 a écrit :

TO_CHAR (plandate, 'YYYY') en ACCESS devient YEAR(plandate)
 
en ce qui concerne TO_CHAR (plandate, 'WW') j'en ai aucune idée.


Au cas ou certain chercheraient également, j'ai trouvé la solution.
 
Il semblerait qu'avec un système à jour, la fonction FORMAT passe sans probleme(ODBC-->ACCESS). Donc il suffit de faire un ORDER BY FORMAT("Plandate", 'WW') pour classer par semaine.
 
Avant d'utiliser format, j'avais essayé avec WEEK(), WEEKNUM(), ... à l'instar de YEAR() cité plus haut mais ca ne fonctionnait pas.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Group by et date

 

Sujets relatifs
insertion date dans mysql[ Shell ] Obtenir la date du lendemain ?
VBS connaitre la date de modification d'un fichierpb avec date()
VBS - Faire un diff entre deux fichier date de modificationAfficher la date du jour sur un site
comparaison de date dans une plage de cellule ?Date de prise de vue - propriété fichier
Requete Group byCellules au format DATE de Excel et PHP
Plus de sujets relatifs à : Group by et date


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR