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 :

Problème sur une requête avec 3 dates [AC-2010]


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2013
    Messages : 38
    Points : 31
    Points
    31
    Par défaut Problème sur une requête avec 3 dates
    Bonjour,

    J'ai une requête basée sur une table unique.
    Cette table a un code produit et 3 dates de péremption :
    Date_Peremption
    Date_Prolongation_Peremption_01
    Date_Prolongation_Peremption_02

    Je veux que ma requête me donne les codes produits périmés dans 3 mois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT PRODUITS.*
    FROM PRODUITS
    WHERE PRODUITS.Date_Peremption<Date()+90
    OR PRODUITS.Date_Prolongation_Peremption_01<Date()+90
    OR PRODUITS.Date_Prolongation_Peremption_02<Date()+90;
    Le résultat ne me convient pas.
    En effet si le produit est périmé initialement, il apparaît quand même dans le résultat alors que sa date de prolongation de péremption (01 ou 02 voir 01 et 0) va plus loin que les 3 mois.

    Quelqu'un peut-il maider ?

    Merci.

    A

  2. #2
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    bonjour,

    si j'ai bien compris il faut que tu récupère la date la plus éloigné des trois date +90 jours ?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2010
    Messages : 801
    Points : 1 107
    Points
    1 107
    Par défaut
    Salut,
    Il faudrait que tu précises la logique que tu souhaites appliquer.
    Déjà, est-ce que cette affirmation est vraie ?
    Date_Peremption < Date_Prolongation_Peremption_01 < Date_Prolongation_Peremption_02
    Parce que si c'est le cas, il faut regarder uniquement sur Date_Prolongation_Peremption_02.
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT PRODUITS.*
    FROM PRODUITS
    WHERE PRODUITS.Date_Prolongation_Peremption_02<Date()+90;

    Sauf si Date_Prolongation_Peremption_01 et Date_Prolongation_Peremption_02 sont parfois NULL.
    Dans ce cas, il faudrait faire :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT PRODUITS.*
    FROM PRODUITS
    WHERE iif(IsNull(Date_Prolongation_Peremption_02),iif(IsNull(Date_Prolongation_Peremption_01),Date_Peremption,Date_Prolongation_Peremption_01),Date_Prolongation_Peremption_02)<date()+90;
    L'informatique fait gagner beaucoup de temps. A condition d'en avoir beaucoup devant soi !!!

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2013
    Messages
    38
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2013
    Messages : 38
    Points : 31
    Points
    31
    Par défaut
    Bonsoir,

    Tout d'abord acceptez mes excuses pour ma réponse tardive.
    J'ai essayé sans réussite depuis dimanche dernier, mais apparemment Internet Explorer m'empêche d'accéder à "répondre à la discussion".
    Je me suis souvenu que Mozilla Firefox résolvait parfois ces problèmes.

    Bref :
    Ce que je voulais c'est bien la liste des produits qui seront périmés dans 3 mois (90 jours), sachant qu'il y a 3 dates possibles de péremption.
    Effectivement à part la première date qui est toujours remplie, il se peut que l'une des 2 autres ou les 2 autres ne le soit pas (NULL).

    Il semble donc que vous ayez trouvé la solution avec la formule conditionnelle (IIf).
    J'ignorais que l'on pouvait programmer ainsi dans les requêtes. (On dirait du Excel)

    Merci beaucoup pour votre aide.

    Audomarois

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 20/01/2011, 12h45
  2. Je recherche de l'aide sur une requête avec dates
    Par Alain CARDINI dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/05/2008, 22h11
  3. Problème sur une requete avec champ date
    Par islande dans le forum Access
    Réponses: 2
    Dernier message: 21/09/2006, 19h39
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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