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 :

Montant total de l'année dans une meme table


Sujet :

QlikView

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Montant total de l'année dans une meme table
    Bonjour,

    je suis tout nouveau dans l'utilisation de qlikview (debut hier ).

    J'ai une table ayant en dimensions ma region du monde, mes articles,ma date de facturation et en mesure j'ai mon montant de la facture.

    si je crée un tableau croisé dynamique ou une table avec en dimensions ma region et en expression une sum(montanthtremise) cela fonctionne.

    mais si j'ajoute une autre expression à ma table : sum({<[datefacturation] = {">=$(vStartYTD)<=$(vEndDate)"}>}montanthtremise)
    avec mes 2 variables
    vStartYTD
    =YearStart([datefacturation])

    venddate
    =[datefacturation]

    j'obtiens toujours le meme resultat que mon sum(montanthtremise)

    est ce que j'oublie quelque chose ?

    merci.

  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 531
    Points
    2 531
    Billets dans le blog
    6
    Par défaut
    Donc votre Set Analysis filtre

    [datefacturation] = {">=YearStart([datefacturation]) <=[datefacturation]"}>}


    Ce qui ne filtre pas grand chose...
    Vous voulez afficher quoi exactement ?

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    bonjour,

    je veux avoir la somme des montants des factures du début d'année à aujourd'hui.

  4. #4
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 531
    Points
    2 531
    Billets dans le blog
    6
    Par défaut
    Il faut donc mettre dans vos variables :
    =YearStart(today())
    et
    =today()

    en s'assurant que "datefacturation" soit au même format que les fonctions de date.

  5. #5
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci mais je n'y arrive toujours pas....

    pour m'aider j'affiche dans une table la datefacturation et le champ =YearStart(today())

    ainsi la datefacturation est sous la forme:

    10/01/2015 00:00:00
    11/01/2015 00:00:00

    et le champ =YearStart(today())
    01/01/2015
    01/01/2015

    c'est pour cela que ca ne fonctionne pas ?

    merci

  6. #6
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 531
    Points
    2 531
    Billets dans le blog
    6
    Par défaut
    Le problème avec les dates, c'est qu'il faut qu'elles soient au même format pour pouvoir être comparées dans un Set Analysis.

    De plus, il faut faire attention avec les "$(=)" car en fonction de s'il y a ou non un "=", il peut transformer "01/01/2015" en "1 divisé par 1 divisé par 2015, c'est à dire 4.96E-4" --> l'égalité ne sera jamais respectée.

    Essayez de charger votre champ "datefacturation" en mettant la fonction "date()" sur votre expression, afin que le format par défaut soit le même que le format de la fonction "today())".

    Ensuite, procédez par étape : utilisez des dates fixes, puis des fonctions et pour finir une variable qui contient une fonction.


    Sinon, vous avez toujours la possibilité d'ajouter un champ qui contient la date au format numérique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    num(datefacturation) AS datefacturation_num
    et d'utiliser ce champ pour le Set Analysis (en utilisant "num(today())").

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci,

    j'ai ajouté à ma requete un champ cast en bigint sur datefacturation que j'ai appelle date_qlik.

    si j'affiche date_qlik et num(today()) j'ai bien le meme format.

    j'ai modifié mes 2 variables en mettant num() et j'ai ajouté mon expression:

    =sum({<[date_qlik] = {">=$(vStartYTD)<=$(vEndDate)"}>}montanthtremise)

    le resultat est le meme qu'au debut...

    en fait j'ai beau mettre tout ce que je veux en filtre, j'ai le meme resultat que mon sum(montanthtremise)

    merci de ton aide.

  8. #8
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 531
    Points
    2 531
    Billets dans le blog
    6
    Par défaut
    Chez moi, ça fonctionne.

    Avec les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Data:
    LOAD 
    num(today() - recno()) as date_qlik,
    recno() AS montanthtremise
    AutoGenerate 600
    ;

    j'ai 600 jours de données, 1 ligne par jour jusqu'à aujourd'hui.

    me retourne 180300.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =sum({$ <date_qlik={">=$(vStartYTD)<=$(vEndDate)"}>} montanthtremise)
    me retourne 18145, avec dans la variable "vStartYTD" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =num(yearstart(today()))
    et dans la variable "vEndDate" :
    Vérifiez que vous avez bien utilisé la même casse pour les noms de variable ("venddate" != "vEndDate").

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    en changeant ma requete par ton code de données data: cela fonctionne directement sans rien changer.

    J'utilisais un direct query pointant sur une vue sql (c'est comme ca que sont definis tous mes rapports crystal reports et ca fonctionne tres bien).

    En remplaçant cela par la requête issue de la vue : cela fonctionnne


    Merci pour ton aide.

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

Discussions similaires

  1. [Requete SQL] Hierarchie dans une meme table
    Par jowsuket dans le forum Langage SQL
    Réponses: 4
    Dernier message: 21/08/2009, 22h11
  2. inverser deux valeurs dans une meme table.
    Par sabotage dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/07/2008, 09h48
  3. Deux NuméroAuto dans une même table
    Par ginaub0 dans le forum Access
    Réponses: 1
    Dernier message: 31/07/2006, 18h13
  4. [HIBERNATE] lier 2 bases de données dans une même table
    Par bondarenko dans le forum Hibernate
    Réponses: 4
    Dernier message: 31/03/2006, 17h01
  5. 2 auto increment dans une meme table
    Par gesualda dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 12/10/2005, 10h31

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