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 :

fonction cumulée(incrémentation) qlickview


Sujet :

QlikView

  1. #1
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Par défaut fonction cumulée(incrémentation) qlickview
    Bonjour,

    je souhaiterais faire une incrémentation au jours le jours sous qlickview:
    mais en prenant juste la valeur la veille donc J-1 .

    par exemple :
    20 avril = 10
    21 avril = 15
    22 avril = 20.
    23 avril = 5

    ce que je souhaite faire :
    on est le 21 avril on à 10 , le 22 avril on aura 25, le 23 avril 45 , le 24 avril 50.

    un peu du genre sum= sum + 1. Une boucle mais juste sur le mois, dès qu'on commence un nouveau mois, le compteur repart à zéro et cela dans un tcd.

    Merci

    j'espère que je suis assez clair

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 654
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 654
    Billets dans le blog
    6
    Par défaut
    mais en prenant juste la valeur la veille donc J-1 .
    Pour faire ça, il suffit de faire un graph avec comme dimension les jours, et comme expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(Ventes) + above(sum(Ventes))
    Ce qui fera la somme des ventes du jour + la somme des ventes du jour précédent.



    par exemple :
    20 avril = 10
    21 avril = 15
    22 avril = 20.
    23 avril = 5

    ce que je souhaite faire :
    on est le 21 avril on à 10 , le 22 avril on aura 25, le 23 avril 45 , le 24 avril 50.

    un peu du genre sum= sum + 1. Une boucle mais juste sur le mois, dès qu'on commence un nouveau mois, le compteur repart à zéro et cela dans un tcd.
    Ca c'est quelque chose de différent.
    C'est un cumul mensuel.

    Pour cela, il faut passer par un calendrier dissocié du modèle.
    Supposons que dans mes faits, j'ai une dimension de date "Date".
    Je crée une dimension dissociée "DimDate" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DimDate:
    LOAD 
    	DISTINCT Date AS DimDate
    RESIDENT Ventes
    ORDER BY Date ASC;

    Dans mon graphique, je mets "DimDate" comme dimension.

    Pour avoir les données jour par jour, j'utilise l'expression
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(if(Date = DimDate, Ventes))
    Pour avoir le cumul mensuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sum(if(Date >= MonthStart(DimDate) and Date <= DimDate, Ventes))
    (on prend tous les chiffres dont la date est entre le début du mois du jour de la dimension et le jour de la dimension).

  3. #3
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Par défaut
    Ca c'est quelque chose de différent.
    C'est un cumul mensuel.

    Pour cela, il faut passer par un calendrier dissocié du modèle.
    Supposons que dans mes faits, j'ai une dimension de date "Date".
    Je crée une dimension dissociée "DimDate" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DimDate:
    LOAD 
        DISTINCT Date AS DimDate
    RESIDENT Ventes
    ORDER BY Date ASC;
    Avant tout merci.
    Quand j'exécute le script, donc la DimDate, j'ai comme message d'erreur "Table introuvable" puis le code que vous m'avez communiquer.

    Faut il que je supprime la champs Dates qui est déjà dans le script ? évité les doublons ?

  4. #4
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 654
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 654
    Billets dans le blog
    6
    Par défaut
    Comme vous n'avez donné aucune indication sur vos données ou votre structure, je suis parti du principe que vous aviez une table "Ventes" contenant une dimension "Date".

    Quand je fais "RESIDENT Ventes", ça veut dire "en se basant sur la table déjà chargée qui s'appelle "Ventes"".

    Donc si votre table s'appelle différemment, il faut adapter le script.

    De la même manière, si vous n'avez pas de dimension "Date" ou "Ventes", il faut adapter.

  5. #5
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Par défaut
    Citation Envoyé par PhunkyBob Voir le message
    Comme vous n'avez donné aucune indication sur vos données ou votre structure, je suis parti du principe que vous aviez une table "Ventes" contenant une dimension "Date".

    Quand je fais "RESIDENT Ventes", ça veut dire "en se basant sur la table déjà chargée qui s'appelle "Ventes"".

    Donc si votre table s'appelle différemment, il faut adapter le script.

    De la même manière, si vous n'avez pas de dimension "Date" ou "Ventes", il faut adapter.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DimDate:
    LOAD 
        DISTINCT Date AS DimDate
    RESIDENT Ventes
    ORDER BY Date ASC;
    ça marche, j'ai essayer sur une de mes tables. comme j'ai une table composée du style omniture_visite , c'est pour ça que ça marchais pas.
    pas contre quand je copie la formule , j'ai pas de résultat.

  6. #6
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 654
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 654
    Billets dans le blog
    6
    Par défaut
    pas contre quand je copie la formule , j'ai pas de résultat.
    Heu... rassurez moi, vous n'avez pas laissé "Ventes" dans la formule, mais vous avez remplacé par votre mesure ?


    Vous avez bien mis "DimDate" comme dimension de votre graphique ?

  7. #7
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Par défaut
    Heu... rassurez moi, vous n'avez pas laissé "Ventes" dans la formule, mais vous avez remplacé par votre mesure ?
    DimDate:
    LOAD
    DISTINCT Jours AS DimDate
    RESIDENT dfp
    ORDER BY Jours ASC;


    Vous avez bien mis "DimDate" comme dimension de votre graphique ?
    en pièce jointe, un imprime écran.

    Ce que je souhaite connaitre c'est le cumul du nombre d’impression:
    sum(IF(Jours >= MonthStart(DimDate) AND Jours <= DimDate, Nbre_total_impréssions))
    Images attachées Images attachées

  8. #8
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Par défaut
    en cherchant sur le forum,
    j'ai trouvé une formule faite par PhunkyBOB , que j'essaye d'exploite :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =sum({$ <[Dates]={'>=$(=monthstart(makedate(2014,1))) <=$(=monthend(makedate(Année,Mois)))'}>} Nbre_total_impréssions)
    ça fonctionne, j'ai des chiffres en retour , mais aussi j'ai en retour tout les mois depuis janvier, or j'aimerais faire apparaître que mois par mois.
    De plus les valeurs sont pas bonnes.

    Je sais pas si y a une condition à rajouté..

    Merci

  9. #9
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Par défaut
    j'ai essayer celle fonction,
    je me suis dit : fait la sum des ,nbre_total_impréssions pour l'année et le mois sélectionné.
    Mais y a un truc qui coince.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sum({$<Année,Mois ={$(=Only(Année,Mois))}[Nbre_total_impréssions)

  10. #10
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 654
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 654
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par mano_bi Voir le message
    j'ai en retour tout les mois depuis janvier, or j'aimerais faire apparaître que mois par mois.
    Donc en fait, pas du tout de "cumul mensuel qui revient à 0 pour chaque mois dans un TCD"...



  11. #11
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2014
    Messages
    406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2014
    Messages : 406
    Par défaut
    Je pense que je me complique la vie et celle de PhunkyBob (désolé) et y'a de quoi me .
    Ce que je veux :
    Je sélectionne le mois de Janvier par exemple ou si possible la sélection ce fait en fonction du calendrier du système(pc, ma base de donnée), Dès qu'on arrive en mai et quand la base de donnée (fichier excel par exeple) est mise à jours il incrémente la valeur supplémentaire. là je ra-conte peu-t être n'im-por-te quoi! arrêté moi, je connais pas les limites de qlickview.
    Quand je sélectionne le mois de janvier et admettons que nous somme le 15 janvier, il fera + la valeur du 14 (comme la base est rechargé avec les données de J-1), le 16 il fera la valeur du 14 + du 15 etc..
    Dans mon tcd (grapihque / tcd -dans qlickview) il y a une case qui affiche le cumul du nombre total d’impressions, et une autre pour le revenus par exemple.

    Ci-joint un fichier excel avec les données de janvier.

    C'est peut être flou... en gros je veux juste cumulé les nbre_total_impressions au jours le jours et ceux sur un mois sélectionné.
    Idem pour les revenus qui je pense est la même formule.

    Merci encore
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Fonction cumul sur un array
    Par Tintin87 dans le forum Langage
    Réponses: 10
    Dernier message: 16/09/2011, 20h06
  2. fonction cumul sur un champ de sous formuliare
    Par patmar83 dans le forum VBA Access
    Réponses: 1
    Dernier message: 20/01/2010, 12h54
  3. Procédure/fonction d'incrémentation sous postgreSQL
    Par rolls dans le forum Requêtes
    Réponses: 5
    Dernier message: 01/11/2008, 10h49
  4. fonction cumulative d'une variable Weibull
    Par NELLLY dans le forum Mathématiques
    Réponses: 3
    Dernier message: 22/03/2008, 16h01
  5. Fonction Cumul d'un Champ
    Par emidem dans le forum Access
    Réponses: 3
    Dernier message: 12/01/2007, 15h18

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