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 :

Requête sélection [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 65
    Points : 45
    Points
    45
    Par défaut Requête sélection
    Bonjour,

    Je souhaite faire apparaître dans un sous-formulaire des formations qui auront lieu dans moins de 8 jours. Une alerte. Le problème serait simple s'il n'y avait qu'une date par formation. Mais il y en a quatre possibles : quatre champs de type date/heure dans la même table et pouvant être vides.

    Pour chaque date, j'obtiens par une requête indépendante ce que je souhaite (DiffDate puis filtre). Mais je voudrais rassembler ces résultats. Il peut en effet y avoir deux dates proches pour la même formation.

    Je voudrais donc obtenir une ligne par formation contenant une ou ou plusieurs dates dont l'intervalle avec la date du jour est x jours.

    Avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT Séminaire.Réfséminaire, [DiffDate1 8j].Diffdate1, [DiffDate3 8j].Diffdate3, [DiffDate4 8j].Diffdate4, [DiffDate2 8j].Diffdate2
    FROM (((Séminaire RIGHT JOIN [DiffDate1 8j] ON Séminaire.Réfséminaire = [DiffDate1 8j].Réfséminaire) RIGHT JOIN [DiffDate3 8j] ON Séminaire.Réfséminaire = [DiffDate3 8j].Réfséminaire) RIGHT JOIN [DiffDate4 8j] ON Séminaire.Réfséminaire = [DiffDate4 8j].Réfséminaire) RIGHT JOIN [DiffDate2 8j] ON Séminaire.Réfséminaire = [DiffDate2 8j].Réfséminaire;
    j'obtiens " jointures externes ambigües...".
    Je suis embarrassé...

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    Tu peux surement faire cela en une seule requête en faisant une test de date sur chacun des tes champs dates.

    Un truc du genre :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    select taTable.* from taTable where ([TonChampdate1] beetween [prmTaDate] and [prmTaDate]+8) or ([TonChampdate2] beetween [prmTaDate] and [prmTaDate]+8) or ([TonChampdate3] beetween [prmTaDate] and [prmTaDate]+8) or ([TonChampdate4] beetween [prmTaDate] and [prmTaDate]+8)

    mais il serait mieux, si c'est possible, de revoir ta structure pour avoir

    TaTableDonnees :
    ClefDonnees
    Autres Infos utiles

    TaTableDateDonnees :
    ClefDateDonnees
    ClefDonnees
    DateDonnees
    Autres Infos utiles

    Cette structure permet un nombre infini de date et de très facilement sélectionner toutes les données qui sont dans une tranche voulue.

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 65
    Points : 45
    Points
    45
    Par défaut
    Merci René,

    Je vais étudier les deux solutions que tu proposes. Chacune ayant avantages et inconvénients compte-tenu de l'existant. Je penche plutôt pour la seconde.

    Cependant, dans la première, que signifie pour toi le préfixe prm- ?

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 365
    Points : 23 835
    Points
    23 835
    Par défaut
    prm est mon abréviation perso pour Paramètre, désolé de ne pas l'avoir précisé car c'était évident pour moi :-).

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 65
    Points : 45
    Points
    45
    Par défaut
    Merci.
    Bon week-end !

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

Discussions similaires

  1. Requête sélection paramétrée
    Par gentoo dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/01/2007, 14h30
  2. Requête sélection en VBA ?
    Par hannii dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 31/08/2006, 15h37
  3. champs non accessibles dans une requête sélection
    Par Claire31 dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 03/08/2006, 13h22
  4. Compter le nombre de lignes d'une requête sélection
    Par oceanediana dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 18/07/2006, 12h11
  5. Requête sélection : recherche par nom
    Par leeloo77 dans le forum Access
    Réponses: 7
    Dernier message: 17/02/2006, 15h39

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