Qlik Community

Groupe des Utilisateurs Francophones

Vous êtes francophone? Ce groupe est pour vous. Venez découvrir comment démarrer avec Qlik Sense et QlikView, poser vos questions et partager vos tutos et astuces avec les membres de notre communauté.

Highlighted
jmialoundama
Contributor II

Script de chargement: objet en tant que mesure

Bonjour,

J'ai mis en place la table suivante dans mon script de chargement :

Dim_Rupture:

LOAD

[Id. Magasin],

  if(sum([_Quantité stock]=0),1,0) as "_Rupture stock"

FROM [lib://QVData/Fait.qvd]

(qvd)

Group by [Id. Magasin];

Je souhaiterai que l'indicateur "_Rupture stock" soit considéré comme une mesure et non une dimension.

Lorsque j'utilise cet objet dans un tableau, il apparait en tant que dimension et non en tant que mesure.

Comment puis-je procéder sous Qlik Sense pour que l'objet soit une mesure ?

Merci d'avance

1 Solution

Accepted Solutions
jmialoundama
Contributor II

Re: Script de chargement: objet en tant que mesure

Je suis finalement passé par le script en faisant en reprenant ce qui existait dans la table de fait et ça fonctionne :

Fait:

LOAD *,

if(([_Quantité stock]=0), 1 , 0) as "_Rupture stock"

FROM 'lib://QVData/Fait.qvd' (qvd) ;

  

Merci pour vos piste en tout cas

J'aurais une derniere question : Je souhaiterai me servir de cette indicateur "_Rupture stock" pour calculer un nouvelle indicateur dans le script qui s'appelle "Taux rupture".

J'ai essayé ceci dans le script :

Fait:

LOAD *,

if(([_Quantité stock]=0), 1 , 0) as "_Rupture stock"

//if(([_Rupture stock]=1), count([_Rupture stock])/sum([Nom magasin]),[_Rupture stock]) as "_Tx rupture entrepôt",

//if(([_Rupture stock]=0), count([_Rupture stock])/sum([Nom magasin]),[_Rupture stock]) as "_Tx rupture entrepôt"

FROM 'lib://QVData/Fait.qvd' (qvd) ;

Mais j'ai le message d'erreur suivant qui me dit  que le champs "_Rupture stock" n'existe pas, doit-je donc passer par une table tmp ou autres ?

View solution in original post

7 Replies
Partner
Partner

Re: Script de chargement: objet en tant que mesure

Bonjour,

As-tu essayé ceci :

Dim_Rupture:

LOAD

[Id. Magasin],

  1 as "_Rupture stock"

FROM [lib://QVData/Fait.qvd]

(qvd)

Group by [Id. Magasin]

having sum([_Quantité stock])=0;


LOAD

[Id. Magasin],

  0 as "_Rupture stock"

FROM [lib://QVData/Fait.qvd]

(qvd)

Group by [Id. Magasin]

having sum([_Quantité stock])>0;

jmialoundama
Contributor II

Re: Script de chargement: objet en tant que mesure

Bonjour Laurent,

Oui j'ai essayé après la vu de votre message et voici l'erreur que j'ai au niveau du script :

Capture.PNG

Partner
Partner

Re: Script de chargement: objet en tant que mesure

Autre solution :

Temp_Dim_Rupture:

LOAD

[Id. Magasin],

sum([_Quantité stock]) as Quantite

FROM [lib://QVData/Fait.qvd]

(qvd)

Group by [Id. Magasin];


Dim_Rupture:

Noconcatenate

LOAD

[Id. Magasin],

1 as "_Rupture stock"

resident Temp_Dim_Rupture

where Quantite = 0;


LOAD

[Id. Magasin],

0 as "_Rupture stock"

resident Temp_Dim_Rupture

where Quantite > 0;


drop table Temp_Dim_Rupture;


brunobertels
Valued Contributor II

Re: Script de chargement: objet en tant que mesure

Bonjour

Voir ce post ou Sunny indique que having et group by ne vont pas forcement ensemble

Group By and Having Clause in Qlikview

Et l'idée et d'utiliser un preceding load ; si j'ai bien tout compris ( ce qui est moins sur )

Dim_Rupture:

LOAD *

WHERE _Quantité stock=0

;

LOAD

[Id. Magasin],

  if(sum([_Quantité stock]=0),1,0) as "_Rupture stock"

FROM [lib://QVData/Fait.qvd]

(qvd)

Group by [Id. Magasin];

LOAD *

WHERE _Quantité stock>0

;

LOAD

[Id. Magasin],

  if(sum([_Quantité stock]=0),1,0) as "_Rupture stock"

FROM [lib://QVData/Fait.qvd]

(qvd)

Group by [Id. Magasin];

jmialoundama
Contributor II

Re: Script de chargement: objet en tant que mesure

Bonjour Bruno,

Merci pour ton retour.

J'ai refais un poste pour être plus clair dans ce que je voulais.

Mais je comprends pas très bien ce que fais ton script de chargement.

Mais en fait je souhaite juste réaliser une mesure qui dit :

Si le magasin a encore du stock pour un produit alors 0 sinon 1 (rupture de stock)

Capture.JPG

Voila le tableau que je souhaiterai obtenir sous Qlik :

Capture1.JPG

J'ai réussi à avoir la formule qui me sors ce que je souhaite, cependant Qlik Sense n'arrive pas à réaliser d’agrégation (colonne totaux):

Capture (1).JPG

Sachant que en dimension j'ai :

-Nom magasin

- Univ/Produit : Qui est une dimension hiérarchique

brunobertels
Valued Contributor II

Re: Script de chargement: objet en tant que mesure

Bonjour

Si c'est un TCD , plutôt que de cocher afficher colonne total

Rajoute une colonne mesure avec en mesure

Sum(Column(1)) + sum(column(2)) etc

Bruno

jmialoundama
Contributor II

Re: Script de chargement: objet en tant que mesure

Je suis finalement passé par le script en faisant en reprenant ce qui existait dans la table de fait et ça fonctionne :

Fait:

LOAD *,

if(([_Quantité stock]=0), 1 , 0) as "_Rupture stock"

FROM 'lib://QVData/Fait.qvd' (qvd) ;

  

Merci pour vos piste en tout cas

J'aurais une derniere question : Je souhaiterai me servir de cette indicateur "_Rupture stock" pour calculer un nouvelle indicateur dans le script qui s'appelle "Taux rupture".

J'ai essayé ceci dans le script :

Fait:

LOAD *,

if(([_Quantité stock]=0), 1 , 0) as "_Rupture stock"

//if(([_Rupture stock]=1), count([_Rupture stock])/sum([Nom magasin]),[_Rupture stock]) as "_Tx rupture entrepôt",

//if(([_Rupture stock]=0), count([_Rupture stock])/sum([Nom magasin]),[_Rupture stock]) as "_Tx rupture entrepôt"

FROM 'lib://QVData/Fait.qvd' (qvd) ;

Mais j'ai le message d'erreur suivant qui me dit  que le champs "_Rupture stock" n'existe pas, doit-je donc passer par une table tmp ou autres ?

View solution in original post