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

Oracle Discussion :

pb de résultats par rapports à des dates


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut pb de résultats par rapports à des dates
    Bonjour,

    J'ai créé une requête qui me renvoie le nombre total de pièces créées avec la valeur globale de celle-ci par mois.
    Mon problème est le suivant.

    Avec la 1ère requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Select count(A.cd_item), sum(D.pr_externe) ,to_char(A.dttm_create,'MM')
      From item A, item_warehouse B, batch C, stock_mouvemt D
      Where A.cd_item = B.cd_item
      And A.cd_item = C.cd_item
      And C.cd_item = D.cd_item
      And C.cd_batch = D.cd_batch
      and A.dttm_create between to_date ('01/06/2010 00:00:01','DD/MM/YYYY HH24:MI:SS')
      and to_date ('30/06/2010 23:59:59','DD/MM/YYYY HH24:MI:SS')
      and A.bo_cancel_item =0
     and B.cd_warehouse='M-PRIN'
     and D.cd_mvt_type = 'E4'
     group by to_char(A.dttm_create,'MM')
     Order by 3
    Le résultat est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SQL> /
    COUNT(A.CD_ITEM)  SUM(D.PR_EXTERNE) TO
    ----------------      ----------------- --
                 231           50546,31 06
    Avec la seconde requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Select count(A.cd_item), sum(D.pr_externe) ,to_char(A.dttm_create,'MM')
      From item A, item_warehouse B, batch C, stock_mouvemt D
      Where A.cd_item = B.cd_item
      And A.cd_item = C.cd_item
      And C.cd_item = D.cd_item
      And C.cd_batch = D.cd_batch
      and A.dttm_create between to_date ('31/05/2010 23:59:59','DD/MM/YYYY HH24:MI:SS')
             and to_date ('01/07/2010 00:00:01','DD/MM/YYYY HH24:MI:SS')
      and A.bo_cancel_item =0
     and B.cd_warehouse='M-PRIN'
     and D.cd_mvt_type = 'E4'
     group by to_char(A.dttm_create,'MM')
     Order by 3
    Le résultat est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    COUNT(A.CD_ITEM)   SUM(D.PR_EXTERNE) TO
    ----------------       ----------------- --
                 251            50841,31 06
    • Quelqu'un pourrait-il m'expliquer pourquoi cette différence de nombre de pièces créées et de valeurs globales, puisque entre les deux requêtes (au niveau des dates), il n'y a que quelques secondes d'écart ?
    • Laquelle des deux requêtes dois-je prendre ?


    Merci pour vos réponses.

    Cordialement.

  2. #2
    Membre averti Avatar de binouzzz19
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    385
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2007
    Messages : 385
    Points : 368
    Points
    368
    Par défaut
    Salut,

    Et pourquoi pas ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Select count(A.cd_item), sum(D.pr_externe) ,to_char(A.dttm_create,'MM')
    From item A, item_warehouse B, batch C, stock_mouvemt D
    Where A.cd_item = B.cd_item
    And A.cd_item = C.cd_item
    And C.cd_item = D.cd_item
    And C.cd_batch = D.cd_batch
    and A.dttm_create between to_date ('01/06/2010 00:00:00','DD/MM/YYYY HH24:MI:SS')
    and to_date ('30/06/2010 23:59:59','DD/MM/YYYY HH24:MI:SS')
    and A.bo_cancel_item =0
    and B.cd_warehouse='M-PRIN'
    and D.cd_mvt_type = 'E4'
    group by to_char(A.dttm_create,'MM')
    Order by 3
    Là tu as tous les résultats sur le mois ... Mais après tout dépend de ce que tu veux toi.

  3. #3
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Sérieusement nous demander pourquoi il y a autant alors qu'il n'y a que quelques secondes d'écart : en résumé : Pourquoi dans tes données, tu as des enregistrements à ces 2 dates 01/06/2010 00:00:00 et 01/07/2010 00:00:00 !

    Doit y avoir un TRUNC(sysdate) dans un des traitements d'insertion, c'est tout.

  4. #4
    Membre à l'essai
    Inscrit en
    Février 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 10
    Points : 10
    Points
    10
    Par défaut pb de résultats sur des dates
    Re-bonjour,
    Tout d'abord , merci pour vos réponses messieurs. La société ne travaille pas entre 21 Hres du soir et 5 Hres du matin.

    - BINOUZZ219 j'ai exécuté la requête que tu as modifier j'ai eu comme résultat: 251 réf créer.
    Si j'exécute la 1ère requête , j'ai comme résultat: 231 réf créer

    1 seconde d'écart fait varier le résultat ? Je souhaite juste avoir un Nbre de réf créer avec la valeur globale

    - McM Si je vous est posé cette question ( pourquoi cet écart ) ( anodin à vos yeux ) étant un ' misérable vers de terre ', je ne maîtrise pas oracle. Quand je crée des requêtes pour extraire des données, j'essaye de comprendre ce que je fais.
    - Vous dites " Doit y avoir un TRUNC(sysdate) dans un des traitements d'insertion, c'est tout. " , si je comprends bien c'est l'application qui a été conçu de la sorte

    Merci , pour vôtre aide Messieurs.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Comme on vous l'a expliqué, il y a surement des insertions qui sont enregistrées à minuit pile, soit à 00:00:00.

    Dans la seconde requête celles-ci sont prises en compte, mais pas dans la première.

    C'est tout, c'est normal, ce sont vos données.

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

Discussions similaires

  1. Comptage par rapport à des dates glissantes
    Par tanaka59 dans le forum SAS Base
    Réponses: 2
    Dernier message: 11/10/2014, 17h15
  2. Cumul par rapport à des dates de saisie
    Par matth32 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 08/03/2013, 20h33
  3. dédoublonner des lignes par rapport à la date
    Par speedev dans le forum Langage SQL
    Réponses: 9
    Dernier message: 09/03/2010, 17h51
  4. requête de validation par rapport à des dates
    Par zougna dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/04/2007, 13h45
  5. Réponses: 9
    Dernier message: 04/01/2007, 11h58

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