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 :

Comment convertir un nombre de jours en nombre de semaines avec quantième de semaine ?


Sujet :

SQL Oracle

  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut Comment convertir un nombre de jours en nombre de semaines avec quantième de semaine ?
    Bonjour,

    Je souhaite renseigner les délais moyens de réapprovisionnement exprimés en semaine et jour sur l'erp par l'intermédiaire d'une requête sql.

    Mon délai moyen de réapprovisionnement correspond à la moyenne de la date à laquelle je reçois ma commande - date à laquelle je l'ai passée.

    Je ne sais pas comment exprimer cette moyenne en semaine-jours.

    J'ai codé ceci pour mettre à jour ma table article. Cela ne convient pas car je dois mettre un délai en s.j.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    merge INTO t_article a 
    USING (select al.id_article, avg(al.date_last_reception - a.date_creation)  as moyenne
    from t_achat a
    inner join t_achat_ligne al
    on a.id_achat = al.id_achat
    where al.date_last_reception  is not null
    and nvl(al.id_article,0) <> 0
    and a.date_creation > '01/01/2014' group by al.id_article) tmp
      ON (a.id_article = tmp.id_article)
    when MATCHED then update
     SET delai_reappro = tmp.moyenne
    Comment puis-je calculer la moyenne en s.j. ?

    Merci d'avance.
    Julien.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Ça dépend si vous comptabilisez en jours calendaires ou en jours ouvrés - actuellement votre moyenne compte les jours calendaires.

    De plus, quel est le type de données de la colonne delai_reappro ?

  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
    Vu que c'est une différence entre 2 dates : avg(al.date_last_reception - a.date_creation), c'est un nombre de jours.

    => Semaine = trunc(moyenne / 7)
    => Jour = mod(moyenne, 7)
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 611
    Points : 359
    Points
    359
    Par défaut
    Le format attendu est number(10,5).

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Comme ceci alors : trunc(moyenne / 7) + mod(moyenne, 7) / 10Avec des chiffres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    with SR (deb, fin) as
    (
    select sysdate - 15, sysdate from dual union all
    select sysdate - 17, sysdate from dual
    )
    select avg(fin - deb) as nb_jours_moyens
         , trunc(avg(fin - deb)/7) + mod(avg(fin - deb), 7)/10 as "S.J"
      from SR;
     
    NB_JOURS_MOYENS        S.J
    --------------- ----------
                 16        2.2

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/12/2014, 19h25
  2. Réponses: 2
    Dernier message: 29/05/2006, 19h16
  3. Réponses: 2
    Dernier message: 03/01/2006, 14h58
  4. Comment convertir un nombre de jours décimal en date
    Par Soutou dans le forum Requêtes
    Réponses: 3
    Dernier message: 03/11/2005, 00h57
  5. Comment obtenir le nombre de jours entre deux timedatepicker
    Par bertrand_declerck dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/08/2005, 11h59

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