Base de données dates groupées par mois sur Access

Base de données dates groupées par mois sur Access - SQL/NoSQL - Programmation

Marsh Posté le 16-02-2008 à 11:08:47    

Bonjour,

 

Je travail sur la création d'une base de données pour une PME sur Access (pour mon stage).

 

Voila mon schéma conceptuel, (me suis basé sur un exemple de cours pour le faire, de ce coté la ça roule) :
http://pix.nofrag.com/7/8/8/65c19420ebd7a90308f9d1022f305t.jpg
J'ai sur les bon de commande la date de commande.

 

J'aimerai dans une requête grouper les commande par mois (voir par année et semaine)
Mais comment ? je sais qu'il faut un truck genre :
Format(.......;"mm" )

 

Mais par quoi compléter les ...., et ou le mettre ? (en "Critère" ou "Où" )

 

Merci d'avance


Message édité par yanhoupa le 16-02-2008 à 11:09:51
Reply

Marsh Posté le 16-02-2008 à 11:08:47   

Reply

Marsh Posté le 17-02-2008 à 11:51:51    

Juste une remarque pour ton schéma conceptuel, ton modèle est le pire truc qui soit. Je ne comprends pourquoi des profs enseignent des choses comme ca....
La base en SQL, c'est de ne jamais faire de jointure sur un libellé ou sur une information fonctionnelle (pas de lien sur les libellés, pas de lien sur les n° de commande, ...).
A la place, tu crées pour chaques tables un numéro incrémental unique, et tu fais tes jointures avec ce numéro.
 
Par exemple pour le lien entre demande et service :

  • dans la table service, tu crées un champ : id_service
  • dans la table demande, tu crées un champ : id_service (et tu enlèves le champ service) et tu fais le lien sur id_service


Pourquoi : actuellement, si le nom d'un service change, toutes tes données sont à mettre à la poubelle....


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 17-02-2008 à 14:07:47    

c'est vrai que comme ça c'est plus pérenne...
 
mais le prof a fait ceci comme cela pour ne pas trop compliquer les chose, meme si c'est vraie que c'est pas bcp plus compliqué

Reply

Marsh Posté le 17-02-2008 à 21:43:38    

ah les profs....  :D

 

Si l'on en croit cet article : http://access.developpez.com/faq/?page=dates#InfoDate. Si tu veux récupérer le mois, tu peux faire :

Code :
  1. PartDate("m",[TonChampDate])


à partir de là, tu peux faire

Code :
  1. SELECT * FROM TABLE GROUP BY PartDate("m",[TonChampDate])


Message édité par babasss le 17-02-2008 à 21:44:29

---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
Reply

Marsh Posté le 18-02-2008 à 16:53:07    

babasss a écrit :

Juste une remarque pour ton schéma conceptuel, ton modèle est le pire truc qui soit. Je ne comprends pourquoi des profs enseignent des choses comme ca....
La base en SQL, c'est de ne jamais faire de jointure sur un libellé ou sur une information fonctionnelle (pas de lien sur les libellés, pas de lien sur les n° de commande, ...).
A la place, tu crées pour chaques tables un numéro incrémental unique, et tu fais tes jointures avec ce numéro.
 
Par exemple pour le lien entre demande et service :

  • dans la table service, tu crées un champ : id_service
  • dans la table demande, tu crées un champ : id_service (et tu enlèves le champ service) et tu fais le lien sur id_service


Pourquoi : actuellement, si le nom d'un service change, toutes tes données sont à mettre à la poubelle....


Sans vouloir faire le méchant, je dirais surtout que yanhoupa a transformé un MCD en MPD en oubliant... justement qu'il faut rajouter des champs ID et autres lorsqu'ils sont nécessaires.
 
Parceque le bignou, il a 100% la tronche d'un MCD, et pas du tout d'un MPD. A commencer par des noms de champ "N° de ligne de commande commande" (vas-y comment ça va être pratique pour écrire des requêtes SQL avec des noms pareils... Pis vas-y la portabilité, j'aimerais voir ce que ça donne avec un SGBD exotique un peu ancien...)


Message édité par MagicBuzz le 18-02-2008 à 16:56:19
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed