6 Replies Latest reply: Dec 20, 2013 2:37 PM by Stephane Chivet RSS

    Syntax error in set analysis ?

    EMMANUELLE DAYOU

      Hello everyone,

      I am trying to calculate the number of members at a time T, ie the same day.
      I use the following expression that brings me nothing. Yet phrase ok.
      I think it's a question of union or intersection ...

      =count({$<LIAISON_POLICE_DTAFFIL={"<=Today()"},LIAISON_POLICE_DTRADIAT={">=Today()"},ADHERENT_DTSORTIE={">=Today()"}>}ADHERENT_NOUNIQUE)

      Anyone have any idea?

      Thank you in advance,

      Emmanuelle

        • Re: Syntax error in set analysis ?
          Stefan Wühl

          You need dollar sign expansion to evaluate functions in your advanced searches:

           

          =count(

          {$<

          LIAISON_POLICE_DTAFFIL={"<=$(=Today())"},

          LIAISON_POLICE_DTRADIAT={">=$(=Today())"},

          ADHERENT_DTSORTIE={">=$(=Today())"}

          >}

          ADHERENT_NOUNIQUE)

           

          Also the format of your date fields need to match your standard date format.

          • Re: Syntax error in set analysis ?
            Yves Ndjoli

            Are sure that the the format from your fields(LIAISON_POLICE_DTAFFIL, LIAISON_POLICE_DTRADIAT, ADHERENT_DTSORTIE) is the same like today()? maybe you have to use the num() to conmpare the date...

             

            Have you tried the if()-function

            if(num(LIAISON_POLICE_DTAFFIL)<=num(today()),

                 and ...

                 and ...

                 ,

            count (ADHERENT_NOUNIQUE)

            )

            • Re: Syntax error in set analysis ?
              EMMANUELLE DAYOU

              Thank you yvesqlik and swuehl :-)

               

              The format of my fields is not the same for all. QlikView can not compare what is not comparable !

              • Re: Syntax error in set analysis ?
                Christophe JOUVE

                Bonjour,

                Plusieurs remarques :

                 

                -          Un champ date n’existe pas dans QlikView. Il s’agit en fait d’un « dual » composé d’un nombre et d’une représentation formatée. Au chargement, s’il s’agit d’un nombre simple, QlikView le formate en utilisant la représentation par défaut (exemple, si on charge 123.54, QlikView va vous proposer une représentation décimale). S’il s’agit d’une représentation formatée comme une date (exemple 16/12/2013), QlikView va essayer de l’interpréter en tant que tel. Si l’interprétation est validée, QlikView va créer ce fameux dual en transformant la chaine de date en nombre puis en vous proposant la représentation par défaut à l’affichage sous la forme d’une date (exemple, 16/12/2013 devient 41624 mais est affiché comme 16/12/2013). Si l’interprétation est invalide, QlikView va le laisser tel quel et l’utiliser comme une chaine de caractères. On peut s’en rendre compte très simplement en utilisant les objets listes dans l’interface. Si la liste contient des dates valides, allez dans les propriétés de la liste, dans l’onglet Nombre, changez la représentation par défaut et passez sur un entier. Vous allez voir apparaitre le nombre du dual sous-jacent à la date.

                 

                -          Quand on utilise une fonction telle que today() dans un SET ANALYSIS, il faut dire à QlikView d’évaluer le résultat de cette fonction avant de l’appliquer à la sélection du SET ANALYSIS. Pour ce faire, on doit employer la syntaxe générale suivante qui inclut l’opérateur $ permettant de faire l’évaluation :

                 

                o   FONCTION_AGREGAT ( { < CHAMP = { $(=EXPRESSION_A_EVALUER) } > } INDICATEUR )

                 

                -          Il faut en plus récupérer la valeur numérique du dual plutôt que son expression au format JJ/MM/AAAA. En effet, dans le SET ANALYSIS un expression au format JJ/MM/AAAA est vue comme une chaine de caractères. Donc ça ne marchera pas.

                 

                -          Dans votre cas, cela donnerait la formule finale suivante:

                 

                o    count({$<LIAISON_POLICE_DTAFFIL={"<=$(=num(Today()))"},LIAISON_POLICE_DTRADIAT={">=$(=num(Today()))"},ADHERENT_DTSORTIE={">=$(=num(Today()))"}>}ADHERENT_NOUNIQUE)'

                 

                Je joins une petite appli de démo QlikView avec 4 champs standards inspirés de votre modèle, qui vous ramène le calcul dans un objet texte.

                 

                Cdt

                 

                 

                 

                Christophe Jouve

                Senior Solution Architect

                 

                Direct: +33 1 55 62 65 54

                Mobile: +33 6 76 24 22 47

                Email:  Christophe.Jouve@qlik.com

                 

                QlikTech

                France Headquarters Office,93 avenue Charles de Gaulle

                92200 Neuilly sur Seine

                 

                qlik.com<http://www.qlik.com/>

                 

                 

                Business Discovery World Tour | Paris | 10 décembre 2013

                 

                http://www.qlikview.fr/bdwt-paris-2013

                 

                The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from any computer.