Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
J'essaye de créer deux indicateurs 'Taux entrepôt' et 'Taux achat' à partir du script dans Qlik, cependant j'ai l'erreur suivante :
Voici mon script de chargement :
Temp_Fait:
LOAD *,
if(([_Quantité stock]=0), 1 , 0) as "_Rupture stock"
FROM 'lib://QVData/Fait.qvd' (qvd)
WHERE [Id. Magasin] <>23;
Fait:
NoConcatenate
LOAD *,
if(([_Rupture stock]=1),Count([_Rupture stock])/Count([Id. Magasin]),[_Rupture stock]) as "_Tx rupture achat"
If(([_Rupture stock]=0),Count([_Rupture stock])/Count([Id. Magasin]),[_Rupture stock]) as "_Tx rupture entrepot"
Resident Temp_Fait
WHERE [Id. Magasin] <>23;
Drop Table Temp_Fait;
Merci d'avance
Tu ne peux pas utiliser de fonctions d'aggrégation (count()) dans le script si il n' y a pas de Group BY dans le Resident
Je précise que ma réponse est juste pour donner une piste sur le débug du script. De ce que j'ai compris du besoin fonctionnel, ce n'est pas à faire dans le modèle mais dans les expressions de calcul.
si c'est bien ton script,
il semble manquer une virgule apres ton premier champ rupture_achat
cdt
Bonjour Olivier,
Merci pour ta réponse.
En fait je me suis trompée dans l'envoie du script.
Le bon script est le suivant :
Temp_Fait:
LOAD *,
if(([_Quantité stock]=0), 1 , 0) as "_Rupture stock"
FROM 'lib://QVData/Fait.qvd' (qvd)
WHERE [Id. Magasin] <>23;
Fait:
NoConcatenate
LOAD *,
if(([_Rupture stock]=1),Count([_Rupture stock])/Count([Id. Magasin]),[_Rupture stock]) as "_Tx rupture achat"
//if(([_Rupture stock]=0),Count([_Rupture stock])/Count([Id. Magasin]),[_Rupture stock]) as "_Tx rupture entrepot"
Resident Temp_Fait
WHERE [Id. Magasin] <>23;
Drop Table Temp_Fait;
J'ai toujours la même erreur.
bizarre, l'erreur est peut être ailleurs,
mets des flags dans ton script voir ou ça plante exactement
ça plante à cette ligne :
if(([_Rupture stock]=1),Count([_Rupture stock])/Count([Id. Magasin]),[_Rupture stock]) as "_Tx rupture achat"
il dit qu'il ne connait pas le champs _Rupture stock alors que je crée bien ce champs dans la table temporaire.
J'ai ajouté un Noconcatenate sur la table Temp_Fait.
Peux-tu essayer avec ce script ?
Temp_Fait:
NoConcatenate
LOAD *,
if(([_Quantité stock]=0), 1 , 0) as "_Rupture stock"
FROM 'lib://QVData/Fait.qvd' (qvd)
WHERE [Id. Magasin] <>23;
Fait:
NoConcatenate
LOAD *,
if(([_Rupture stock]=1),Count([_Rupture stock])/Count([Id. Magasin]),[_Rupture stock]) as "_Tx rupture achat"
//if(([_Rupture stock]=0),Count([_Rupture stock])/Count([Id. Magasin]),[_Rupture stock]) as "_Tx rupture entrepot"
Resident Temp_Fait;
Drop Table Temp_Fait;
Re Bonjour Laurent,
Merci pour ta réponse.
Du coup j'ai essayé d'apporter les modifications que tu m'as donné au script et j'ai l'erreur suivante maintenant :
Temp_Fait:
Alors que je mets bien place ce script :
Temp_Fait:
NoConcatenate
LOAD *,
if(([_Quantité stock]=0), 1 , 0) as "_Rupture stock"
FROM 'lib://QVData/Fait.qvd' (qvd)
WHERE [Id. Magasin] <>23;
Fait:
NoConcatenate
LOAD *,
if(([_Rupture stock]=1),Count([_Rupture stock])/Count([Id. Magasin]),[_Rupture stock]) as "_Tx rupture achat"
Resident Temp_Fait;
Drop Table Temp_Fait;
Tu ne peux pas utiliser de fonctions d'aggrégation (count()) dans le script si il n' y a pas de Group BY dans le Resident
Je précise que ma réponse est juste pour donner une piste sur le débug du script. De ce que j'ai compris du besoin fonctionnel, ce n'est pas à faire dans le modèle mais dans les expressions de calcul.
Effectivement après des recherches j'ai vu qu'il fallait utiliser un group by
Mais du coup j'ai travailler avec une expression et les analyses d'ensemble.
Merci encore pour ta réponse