IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Requete qui tourne en rond


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut Requete qui tourne en rond
    Bonjour,

    J'ai une table produit, une client et une commande.

    La table commande est entre les deux autres tables.

    Cette table commande comprends donc les champs [idClient], [idProduit] et les champs suivants:

    [effet] date d'effet d'un produit
    [validite] date de fin d'effet d'un produit

    Le but est d'avoir une requete qui va lister toutes les dates anniversaires mensuelles de ce produit.

    Par exemple, la date deffet est le 04/01/2005.

    La date de fin de validité serait le 04/05/2006


    La requete devrait me lister :
    04/02/2005
    04/03/2005
    04/04/2005
    04/05/2005
    04/06/2005
    04/07/2005
    04/08/2005
    etcetc....
    04/04/2006
    04/05/2006


    Il faut une requete d'auto jointure?? je n'y arrive. Merci


    Pour linstant jy arrive sur une seule ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AjDate("m";1;[effet]) AS DatePaiement

  2. #2
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    C'est impossible sans passer par VBA ou une table contenant tous les mois



    En effet, les requêtes ne peuvent affichée que des données stockées ou bien des calculs sur des données stockées, en aucun cas elles ne peuvent afficher des données venant de nulle part

    Je te conseille donc d'avoir une table listant tous les mois (1 à 12) et une table listant toutes les années (1990-2030)

  3. #3
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    Donc jai bien une table annee avec le champs annee listant les valeurs 2000,2001....2030

    Jai une tables mois avec les valeurs 1 à 12.

    Comment procéder maintenant?

    EDIT: ou encore mieux, comment procéder en VB?

  4. #4
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Et bien maintenant ce n'est plus qu'une histoire de jointure

    Il te faut tout d'abord uen requête qui te créera la combinaison des mois et des années, un produit cartésien en fait

    On nomme cette requete R01

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT Mois, Annee FROM TableMois, TableAnnee
    Ensuite une requete qui donne la combinaisons de toutes les dates en fonction de la date d'effet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT IDProduit, DateSerial(Annee,Mois,Day(DateEffet)) FROM Produit, Annee
    Reste plus qu'à restreindre l'affichage avec un between dateeffet/dateValidite en fonction du produit

  5. #5
    Membre régulier Avatar de hugo69
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    512
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 512
    Points : 122
    Points
    122
    Par défaut
    Merci beaucoup, ca marche impeccable.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dataset qui tourne en rond
    Par BMT_Benoît dans le forum Windows Forms
    Réponses: 10
    Dernier message: 08/09/2007, 23h36
  2. Paramètres GET & fonction qui tourne en rond
    Par bigltnt dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2007, 11h06
  3. requête qui tourne indéfiniment
    Par julien.63 dans le forum Outils
    Réponses: 5
    Dernier message: 01/09/2006, 22h34
  4. Prog qui tourne en rond :-(
    Par FranckDev dans le forum CORBA
    Réponses: 2
    Dernier message: 07/09/2005, 13h50
  5. Requete qui tourne à l'infini
    Par Sarrus dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/07/2005, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo