Obtenir une seule fois la date de fin de semaine

thierrysautreau Messages postés 2 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 22 septembre 2009 - 18 sept. 2009 à 19:08
thierrysautreau Messages postés 2 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 22 septembre 2009 - 22 sept. 2009 à 09:10
bonjour
Voilà, j'ai table nommé données qui contient

Date , article , dispo
31/05/2009 A 12
29/06/2009 A -5
15/07/2009 A -15
16/07/2009 A -20
25/07/2009 A -35

Je souhaite avoir l'évolution par semaine des articles qui sont indisponibles

voici ma requête
select données.date, données.article, données.dispo
from données
where données.date >=#01/01/2009# and donnése.date<=31/12/2009 and données.dispo <0
group by données.date, données.article, données.dispo

bien sur, là, le résultat donne toutes les dates mais moi, je veux la dernières date trouvées de chaque semaine: Est ce possible ?
Merci à vous
T.S

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
19 sept. 2009 à 14:55
Salut
Tu précises qu'il s'agit de date de fin de semaine. Est-ce cela a une importance de savoir que ce sont des dates de fin de semaine ?
Tu embrouilles tes explications, on a l'impression que tu cherches à calculer cette date.
Donc, on part du principe que tes dates sont ... des dates.

De quel type est ta DB ? Access, SQL Server, ...
De quel type le champ "date" est-il déclaré dans ta DB ?

Les champs de format date stockés dans une DB
Si tu utilises la syntaxe d'encadrement # d'un côté, fais-le aussi de l'autre.
Voir la syntaxe Where données.date Between #01/01/1970# And #01/01/1980#Ca ne changera rien, mais c'est plus pratique.
Méfiance aussi du format des dates : Elles sont stockées en américain "Mois/Jour/Année". Tout dépend de ta DB et de la manière dont tu construis ta requète.

Essaye ça :
  Set RowCount 1   ' une seule ligne pour les prochaines requètes
  Select données.date, données.article, données.dispo 
    From données 
   Where données.date Between #01/01/1970# And #01/01/1980#
   Order By données.date Desc
  Set RowCount 0   ' Annule la restriction
mais il te faudra une requète par article. Impossible de générer une réponse qui ne trierait que un seul résultat par article

Sinon, tu laisse ta requète comme elle est et tu filtres les résultats dans l'analyse du RecordSet, mais comme on ne sait pas avec quoi tu fais ta requète ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
thierrysautreau Messages postés 2 Date d'inscription dimanche 26 avril 2009 Statut Membre Dernière intervention 22 septembre 2009
22 sept. 2009 à 09:10
Salut
Effectivement, je m'aperçois que je n'ai pas été clair !
DB Access 2002/ champ date déclaré en format "Date/heure"
Effectivement, le between est mieux / merci
Les dates sont effectivement au format américain
Je suis un novice dans Access
J'ai essayé ton code mais je n'y comprend rien, j'ai plein d'erreur.
En fait, ma BD comporte 300 000 lignes: Pour chaque date (jour), j'ai 7000 articles différent:
Je souhaite obtenir les articles indisponibles sur la date de fin de semaine
Pour l'instant, j'obtiens tous les jours et quand je le met en tableau croisé dynamique, un total de tous les jours de la semaine !!!??? Moi, je veux que la dernière journée trouvé de chaque semaine...
Est ce possible (J'espère avoir été clair cette fois)
Merci d'avance pour vos réponses
T.S
0
Rejoignez-nous