Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
Je souhaite alimenter une nouvelle colonne (ici Cnew) avec une valeur (ici 1) à la condition que ‘’BP_T1’’ existe dans la table de référence ‘’T_ref’’ (colonne BP)
Or j’ai toujours un message d’erreur qui stipule :
Invalid expression
T_1 :
load
…
Y a-t-il svp une subtilitée ? doit t on ne pas utiliser la fonction ‘’Exists’’ ?
Merci d’avance
Sebastien
--------------------
T_ref:
load
[Billing party] as BP
resident Tref_renego_FI;
T_1 :
load
BP_T1,
BP_T2,
if (Exists(BP, BP_T1), 1 ,0) as Cnew
resident T_alim
group by BP_T1, BP_T2;
Bonjour,
Je ne pense pas que tu ai fourni le bon morceau de script pour corriger l'erreur. Peux-tu mettre un extrait (même vide) de ton application afin de visualiser l'enchainement de ton script ?
Amand
Le problème vient du GROUP BY qui impose l'usage d'une fonction d'aggrégation pour tous les champ autres que ceux définissant le GROUP BY.
Si vous voulez éviter d'éventuels doublons, utilisez plutôt LOAD DISTINCT.
Je ne pense pas que cela vienne du GROUP BY, même si effectivement cela génèrera une erreur par la suite.
L'erreur semble venir d'un traitement réalisé avant.
Bonjour, Merci
J'ai corrigé le post initial. ce devrait etre mieux maintenant.
Le script concernant la table de ref est le suivant :
Tref_renego :
LOAD [Billing party] as BP,
[Renegociation tarifaire]FROMbiff, embedded labels, header is 3 lines, table is Feuil1$)where [Renegociation tarifaire]='OUI';
(
concernant la Table T1, il y a uniquement de nombreuses colonnes en plus dans le load.
Le fait est que la mise en commentaire de " if (Exists(BP, BP_T1), 1 ,0) as Cnew " fait passer sans pbl le load. C'est manifestement uniquement cette partie qui pose pbl et renvoie ce message d'erreur.
merci encore
Sebastien
Bonjour, Merci
J'ai corrigé le post initial. ce devrait etre mieux maintenant.
Le script concernant la table de ref est le suivant :
Tref_renego :
LOAD [Billing party] as BP,
[Renegociation tarifaire]FROMbiff, embedded labels, header is 3 lines, table is Feuil1$)where [Renegociation tarifaire]='OUI';
(
concernant la Table T1, il y a uniquement de nombreuses colonnes en plus dans le load.
Le fait est que la mise en commentaire de " if (Exists(BP, BP_T1), 1 ,0) as Cnew " fait passer sans pbl le load. C'est manifestement uniquement cette partie qui pose pbl et renvoie ce message d'erreur.
merci encore
Sebastien
As-tu essayé de supprimer le GROUP BY, comme conseillé par Richard ?
Sur une V11, le fait de mettre un GROUP BY sans fonction d'aggrégation provoque l'erreur "Aggregation expressions required by GROUP BY clause". Sur une version antérieure, l'erreur est peut-être moins explicite. En quelle version es-tu ?
Merci a tous
J'ai tenté sans le group by, ... ca ne marche pas..
je m'en sort en utilisant un autre table tres en amont (ca marche) , et en creant un coefficient.
Pour autant, je suis un peu frustré car je n'ai pas reussi avec cette table (directement)
Merci encore
Bonjour Sébastien,
Tu pourrais effectuer un chargement en deux étapes, tout en utilisant la même condition au niveau du Where clause:
T_1 :
LOAD Distinct BP_T1
, BP_T2
, 1 as Cnew
Resident T_alim
Where Exists(BP, BP_T1);
Concatenate (T_1)
LOAD Distinct BP_T1
, BP_T2
, 0 as Cnew
Resident T_alim
Where not Exists(BP, BP_T1);
Bonne soirée! 🙂
Philippe