Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
jmialoundama
Specialist
Specialist

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
Specialist
Specialist
Author

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
lcloatre
Partner - Creator III
Partner - Creator III

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
Specialist
Specialist
Author

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

lcloatre
Partner - Creator III
Partner - Creator III

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
Master
Master

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
Specialist
Specialist
Author

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
Master
Master

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
Specialist
Specialist
Author

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 ?