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

MS SQL Server Discussion :

[SQL2K]Calculer la durée moyenne des interventions d'un intervenant en Jours


Sujet :

MS SQL Server

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut [SQL2K]Calculer la durée moyenne des interventions d'un intervenant en Jours
    Bonjour,

    Voila dans ma base, j'ai une table avec 2 date : 'DatePriseEnCharge' et 'DateDispo'.
    'DatePriseEnCharge' correspond à la date de prise en charge d'un matériel et la 'DateDispo' correspond à la date auquel le matériel es disponible.

    J'aimerais avoir la durée moyenne des interventions correspondant à un intervenant en jours.

    J'ai essayé cela mais c'est pas terrible :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT AVG(DATEDIFF(minute, IN_PRICHARG, IN_RECUPMAT))/1200 as DureeMoyInter FROM INTERVENTION, INTERVENANT, OPERER WHERE INTERVENTION.IN_NUMINTER = OPERER.O_NUMINTER AND OPERER.O_CODVENAN = INTERVENANT.IT_CODVENAN AND IT_NOMVENAN = 'Bidul'
    car imaginon que la 'DatePriseEnCharge=01/02/2008' et que 'DateDispo=10/03/2008' il m'affiche 22, ce qui n'est pas exacte. Faut savoir que l'intervenant peut avoir plusieurs interventions a son actif.

    Si quelqu'un a une idée!!
    Merci d'avance!!

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 893
    Points : 53 129
    Points
    53 129
    Billets dans le blog
    6
    Par défaut
    Merci de respecter la charte de postage et notamment de poster le DDL de vos tables :
    http://www.developpez.net/forums/showthread.php?t=96701

    A +

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut [SQL2K]réponse à SQLpro
    Oui désolé, c'est un malheureux oubli de ma part.

    Donc je travail sous SQL Server 2000.

    Voici ci-joint (document word) les structures, la relations des tables qu'on peut avoir besoin pour la requête.

    Merci d'avance!!
    Loic.

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 893
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 893
    Points : 53 129
    Points
    53 129
    Billets dans le blog
    6
    Par défaut
    Essayez avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AVG(CAST(IN_RECUPMAT AS FLOAT) - CAST(IN_PRICHARG AS FLOAT))
    Faites vos jointures avec des JOIN et non dans la clause WHERE. Cette syntaxe n'est plus adaptée....

    A +

  5. #5
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à SQLpro
    Je viens de tester mais je viens de me rendre compte que si l'intervenant à plusieurs interventions le nombre de jour n'est pas correct.

    EXEMPLE : Imaginons que sa première intervention été de 'IN_PRICHARG=01/02/2008 et IN_RECUPMAT=10/03/2008' et que sa deuxième 'IN_PRICHARG=16/03/2008 et IN_RECUPMAT=16/03/2008'.

    Le résultat sera de 19 ce qui n'est pas exact.

    Merci d'avance!!

  6. #6
    Membre confirmé Avatar de Monstros Velu
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2003
    Messages
    619
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2003
    Messages : 619
    Points : 601
    Points
    601
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    EXEMPLE : Imaginons que sa première intervention été de 'IN_PRICHARG=01/02/2008 et IN_RECUPMAT=10/03/2008' et que sa deuxième 'IN_PRICHARG=16/03/2008 et IN_RECUPMAT=16/03/2008'.

    Le résultat sera de 19 ce qui n'est pas exact.
    Si, c'est exact :
    Du 01/02 au 10/03 il y a 38jours pleins
    Du 16/03 au 16/03, il y a 0jours pleins.
    Tu as 2 lignes.
    La moyenne est donc de 38/2 = 19.

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Monstros Velu
    Ah oui tu as raison, suis-je bête, je sais même plus calculer une moyenne ça deviens grave!!LOL.

    Cordialement.

  8. #8
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Bonjour tout le monde,

    Voila je souhaiterais faire ce calcul en fonction d'une période choisit.

    Voici la requête que je vien de créer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT AVG(CAST(IN_RECUPMAT AS FLOAT) - CAST(IN_PRICHARG AS FLOAT)) as DureeMoyInter FROM INTERVENTION, INTERVENANT, OPERER WHERE INTERVENTION.IN_NUMINTER = OPERER.O_NUMINTER AND OPERER.O_CODVENAN = INTERVENANT.IT_CODVENAN AND IT_NOMVENAN = 'Vivien' AND SUBSTRING(OPERER.O_NUMINTER, 1,10) BETWEEN '2008/02/02' AND '2008/05/02'
    Mais cela m'affiche "0.0" comme résultat alors que voici les interventions qui correspondent à cette intervenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    O_NUMINTER
    2008/02/01-001
    2008/03/16-001
    Donc il devrait y avoir la durée moyenne de l'intervention "2008/03/16-001".

    Si quelqu'un a une idée d'ou peut provenir mon problème??

    Merci d'avance!!

  9. #9
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Non ben c'est bon en fait, je trouvé 0.0 tout simplement à cause du fait que dans ma base IN_PRICHARG et IN_RECUPMAT = 2008/03/16 de l'intervention 2008/03/16 avait en commun la même date.

    Cordialement.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 26/08/2013, 18h36
  2. Calculer racine la moyenne des résidus au carré
    Par marlene2110 dans le forum Débutez
    Réponses: 4
    Dernier message: 01/07/2011, 15h46
  3. Réponses: 3
    Dernier message: 26/10/2010, 22h14
  4. Calculer la durée moyenne
    Par aelarbaoui dans le forum Langage
    Réponses: 4
    Dernier message: 31/05/2009, 11h26
  5. [Débutant] Calcul de la moyenne des composantes RGB d'une image
    Par amalirou dans le forum Images
    Réponses: 3
    Dernier message: 24/09/2007, 22h44

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