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

QlikView Discussion :

Calcul d'une durée dans le script


Sujet :

QlikView

  1. #1
    Membre régulier
    Homme Profil pro
    Chef de projet BI
    Inscrit en
    Août 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Chef de projet BI

    Informations forums :
    Inscription : Août 2013
    Messages : 42
    Points : 82
    Points
    82
    Par défaut Calcul d'une durée dans le script
    Bonjour,

    Mon application porte sur l'horodatage et les données sont issues d'un fichier texte.

    Actuellement ma table principale est de la forme :

    ID ACTION HEURE
    01 debut 10:00
    01 actionA 10:15
    01 fin 10:30
    02 debut 14:20
    02 actionA 15:00
    02 actionB 15:30
    02 fin 15:35

    Pour calculer le temps nécessaire à chaque "ID" j'utilise les expressions d'objets de feuille suivantes :

    Hour(Max(Heure)-Min(Heure))
    et
    Minute(Max(Heure)-Min(Heure))

    Il serait plus judicieux d'avoir une table de la forme :

    ID DUREE
    01 00:30
    02 01:15

    Seulement voilà je n'y arrive pas, j'ai essayé des scripts du type :

    LOAD ID distinct,
    Hour(Max(Heure)-Min(Heure)) as DUREEHEURE,
    Minute(Max(Heure)-Min(Heure)) as DUREEMIN
    FROM ...

    "Invalid expression" m'est renvoyé.

    Un peu d'aide serait la bienvenue

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Comme vous n'avez pas mis votre expression en entier, je ne vois pas si vous avez bien mis un "GROUP BY ID" à la fin.


    En effet, si vous utiliser une fonction d'agrégation (min / max), il faut forcément grouper par tous les champs qui ne sont pas agrégés.

  3. #3
    Membre régulier
    Homme Profil pro
    Chef de projet BI
    Inscrit en
    Août 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Chef de projet BI

    Informations forums :
    Inscription : Août 2013
    Messages : 42
    Points : 82
    Points
    82
    Par défaut


    Je viens d'y parvenir, avec des tables intermédiaires et un script du style :

    Horodatage :
    LOAD ID,
    ACTION,
    HEURE
    FROM ...;

    Horodatagemaxmin :
    Load ID,
    max(HEURE) as hmax,
    min(HEURE) as hmin
    Resident Horodatage
    group by ID;

    Horodatagecalc :
    Load ID,
    hmax-hmin as duree
    Resident Horodatagemaxmin;

    Je pense ne plus avoir besoin de toutes ces tables intermédiaires maintenant que je sait d'où venait le problème.

    Merci PhunkyBob

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

Discussions similaires

  1. calcul d'une durée dans une table
    Par marcus275 dans le forum Access
    Réponses: 4
    Dernier message: 05/09/2010, 18h06
  2. [VBA] Calcul d'une durée dans un formulaire
    Par Platon93 dans le forum Access
    Réponses: 2
    Dernier message: 16/12/2006, 16h53
  3. Réponses: 2
    Dernier message: 16/01/2006, 15h07
  4. Changer de base à l'intérieure d une instance dans un script
    Par Labienus dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/12/2005, 16h03
  5. Créer une table à partir d'une autre dans un script
    Par Dam)rpgheaven dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 24/06/2005, 10h55

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