Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/02/2011, 11h15   #1
Membre à l'essai
 
Inscription : octobre 2003
Messages : 82
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 82
Points : 22
Points : 22
Envoyer un message via ICQ à Wisefool Envoyer un message via MSN à Wisefool
Par défaut Nombre de jours affectés par mois

Bonjour,

J'ai une table Emprunt qui recense pour chaque DVD la date d'emprunt et la date de retour.
Je cherche à savoir combien de jours pour chaque mois sont empruntés ces DVDs.
Est-ce possible une telle requête ?
Le problème est que je n'ai que deux champs date "Date_Emprunt" et "Date_Retour" et que ces deux dates peuvent être sur 2 mois différents

Merci pour vos lumières !
Wisefool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 13h01   #2
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 743
Points : 10 743
Envoyer un message via MSN à jpcheck
salut,

tu consideres bien qu'un dvd emprunte le 20 du mois (mois de 30 jour) aura une periode de location de 10 jours sur le mois ?

Aussi tu peux facilement extraire ta date de debut et de fin de mois pour chacune de tes dates.

Au niveau algorithmique tu aurais
- si mois(Date de debut) = Mois(Date de fin) alors
- Periode sur le mois= Date de fin - date de debut
- sinon
- Periode sur le mois = Date du dernier jour du mois - date de debut
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 14h53   #3
Membre à l'essai
 
Inscription : octobre 2003
Messages : 82
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 82
Points : 22
Points : 22
Envoyer un message via ICQ à Wisefool Envoyer un message via MSN à Wisefool
donc en gros j'aurais un

select month(Date_Emprunt), titre, iif(algorithme) ?

et il va me splitter tout seul les 2 mois si c'est à cheval sur 2 mois ?

Bon, je teste.
Me reste plus qu'à trouver comment avoir le dernier jour du mois

Merci de ton aide en tout cas !
Wisefool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 14h56   #4
Rédacteur/Modérateur
 
Avatar de jpcheck
 
Jean-Philippe ANDRÉ
Inscription : juillet 2007
Messages : 7 863
Détails du profil
Informations personnelles :
Nom : Jean-Philippe ANDRÉ
Âge : 28
Localisation : France

Informations forums :
Inscription : juillet 2007
Messages : 7 863
Points : 10 743
Points : 10 743
Envoyer un message via MSN à jpcheck
Une bonne base serait d'utiliser les contributrions de ce defi :
http://www.developpez.net/forums/d70...registrements/
__________________
Pas de question technique par MP, je ne réponds pas

Mon perso ? Une vraie brute

Tutos Access, Tâches planifiées et Batch,Tables de Paramètres sous Access, Excel et Batch, Tâches planifiées et Access
jpcheck est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/02/2011, 15h09   #5
Membre à l'essai
 
Inscription : octobre 2003
Messages : 82
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 82
Points : 22
Points : 22
Envoyer un message via ICQ à Wisefool Envoyer un message via MSN à Wisefool
wow
c'est autrement plus complexe là
merci pour le lien, ça me fera de la lecture éducative !
Wisefool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 15h53   #6
Membre à l'essai
 
Inscription : octobre 2003
Messages : 82
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 82
Points : 22
Points : 22
Envoyer un message via ICQ à Wisefool Envoyer un message via MSN à Wisefool
En fait, l'algorithme serait un peu plus compliqué, là on part du principe que c'est à cheval sur 2 mois, mais il est possible d'avoir ça sur plusieurs mois...

Par exemple, si un DVD est emprunté le 08/03/2010 et rendu le 06/05/2010, on est censé avoir
03/2010 23
04/2010 30
05/2010 7

...
j'ai mal au cerveau
...

Wisefool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 16h00   #7
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut JP et Wisefool,

Voici une fonction parmi d'autres, tiré d'un tuto sur la représentation de données statistiques par mois (Il s'agit de nuitées, j'ai enlevé le nbre de personnes):

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Public Function NbJours(Mois As String, DateA As Date, DateF As Date) As Integer
Dim DD As Date, DF As Date
 
DD = DateSerial(Year(Mois), Month(Mois), 1) '1er jour du mois
DF = DateSerial(Year(Mois), Month(Mois) + 1, 0) ' Dernier jour du mois.
 
   If (DD <= DateA) And (DF >= DateF) Then ' Si la réservation est contenue entièrement dans le mois.
      NbJours = (DateF - DateA + 1)
   ElseIf (DD >= DateA) And (DF <= DateF) Then ' Si elle commence avant et fini après le mois.
      NbJours = (DF - DD + 1)
   ElseIf (DD >= DateA) And (DD <= DateF) Then ' Si elle commence avant et fini durant le mois.
      NbJours = (DateF - DD + 1)
   ElseIf (DF >= DateA) And (DF <= DateF) Then ' Si elle commence durant et fini aprèsb le mois.
      NbJours = (DF - DateA + 1)
   Else
      NbJours = 0
   End If
 
End Function
L'argument Mois est du style "12/2010"

Ou, DateA : "Date_Emprunt" et
DateF : "Date_Retour"

Peut-être : DateF = Date_Retour - 1 à verifier

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/02/2011, 16h34   #8
Membre à l'essai
 
Inscription : octobre 2003
Messages : 82
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 82
Points : 22
Points : 22
Envoyer un message via ICQ à Wisefool Envoyer un message via MSN à Wisefool
Je regarde ça de près
Merci à vous deux !
Wisefool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/02/2011, 19h06   #9
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
Salut,

Voici un exemple basé sur mon tuto :

bdStatsDVD1.zip

J'ai inversé les mois et année ("aaaa/mm") pour trier les mois...

A+
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/02/2011, 09h42   #10
Membre à l'essai
 
Inscription : octobre 2003
Messages : 82
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 82
Points : 22
Points : 22
Envoyer un message via ICQ à Wisefool Envoyer un message via MSN à Wisefool
en l'absence d'un smiley de prosternation, tu as droit à un big up


Merci beaucoup !
Wisefool est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/02/2011, 12h02   #11
Rédacteur/Modérateur
 
Avatar de User
 
Homme Denis
Développeur informatique
Inscription : août 2004
Messages : 3 205
Détails du profil
Informations personnelles :
Nom : Homme Denis
Âge : 42
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : août 2004
Messages : 3 205
Points : 5 258
Points : 5 258
__________________
Merci de ne pas poster sur mon profil pour des problèmes techniques. Pour celà vous pouvez utiliser le forum ou m'envoyer un mp.

Bon développement !


Mes tutoriels et contributions sur ma page perso:
Ma page personnelle
User est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h43.


 
 
 
 
Partenaires

Hébergement Web