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

SQL Oracle Discussion :

Incohérence dans une requête simple


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 26
    Points : 13
    Points
    13
    Par défaut Incohérence dans une requête simple
    Bonjour tout le monde,

    Je dispose d'une table employes_cdd dont voici la description

    Nom : Screen Shot 2016-06-22 at 6.22.35 PM.png
Affichages : 137
Taille : 10,6 Ko

    Lorsque je pose la requête basique suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT CODEMP, NOMEMP, DATE_FIN_CONTRAT, add_months(sysdate,1)
    FROM EMPLOYES_CDD E;
    J'obtiens le résultat suivant :

    Nom : Screen Shot 2016-06-22 at 6.25.03 PM.png
Affichages : 122
Taille : 8,1 Ko

    On voit donc que pour la dernière personne du lot de test, il y a cohérence entre la DATE_FIN_CONTRAT et add_months(sysdate,1) : 22/07/2016.

    Pourtant, lorsque je lance la requête suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT CODEMP, NOMEMP, DATE_FIN_CONTRAT, add_months(sysdate,1)
    FROM EMPLOYES_CDD E
    WHERE add_months(sysdate,1) = E.DATE_FIN_CONTRAT;
    je n'obtiens aucun résultat ! Je devrais obtenir au moins une personne : celle pour laquelle la date de fin de contrat est 22/07/2016.

    Comment expliquer cette incohérence ?

    Merci par avance pour votre aide.

    Cordialement,

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonsoir,
    A mon avis, il te manque un "trunc" sur tes dates (ton champs date et ton "add_months"), histoire de zapper les heures, minutes, secondes, etc ...
    @+
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    J'ai regardé du côté de la fonction TRUNC mais je ne suis pas certain de comment l'utiliser.

    Si tu pouvais m'orienter, ça serait sympa.

  4. #4
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Citation Envoyé par AngePierre Voir le message
    J'ai regardé du côté de la fonction TRUNC mais je ne suis pas certain de comment l'utiliser.

    Si tu pouvais m'orienter, ça serait sympa.
    Je dirais qqchose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    WHERE trunc(add_months(sysdate,1)) = trunc(E.DATE_FIN_CONTRAT);
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  5. #5
    Membre à l'essai
    Inscrit en
    Octobre 2010
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 26
    Points : 13
    Points
    13
    Par défaut
    J'a finalement fait un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TRUNC(add_months(sysdate,1),DDD) = TRUNC(E.DATE_FIN_CONTRAT,DDD);
    et ça fonctionne parfaitement

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/09/2012, 10h19
  2. [MySQL] Simple tri dans une requête
    Par baptirey dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/10/2011, 14h42
  3. Réponses: 2
    Dernier message: 19/08/2011, 10h02
  4. Réponses: 4
    Dernier message: 10/11/2010, 22h01
  5. Problème sur une requête simple dans une table simple
    Par Muso tensei dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 26/04/2009, 12h28

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