Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
J'essaye de charger qu'une partie des données qui se trouve dans une (grosse) table, et donc je voudrais limité le chargement de données à 4 semaines à partir de la date du jour.
Voila ce que j'ai essayé de faire, mais il n'aime pas ma syntaxe et je n'arrive pas a en trouvé une autre.
ACHATS_INCIDENTS:
LOAD "ENREG_ID",
"DEPOT_COD",
"COMBSTO_ID",
"CASE_ID",
"LOTINT_COD",
"SERIE_COD",
"MVT_QT",
"MVT_SENS",
"MVT_DAT",
Week(MVT_DAT) AS MVT_DAT_SEM,
"MVT_AAAAMM",
"MVTDETAIL_LIB",
"IMPUTSTK_COD",
"ORIGINE_COD",
"STKARRET_QT",
"TYPEMVT_COD",
"ENTITEENT_COD",
"EVENEMENT_ID",
"FACVTE_OK",
"ETIQ_NO",
"QUANTIEME_VAL",
"FAMINVTREQDAT_ID",
"FORMULAIRESTK_NO",
"TRF_NO",
"DEPOT2_COD",
"CLASSE1_LIB",
"CLASSE2_LIB",
"CLASSE3_LIB",
"CLASSE4_LIB";
SQL SELECT *
FROM "ERP_CDI"."STO_HISTOMVT"
WHERE MVT_DAT_SEM > (Week(Today(1))-4);
MVT_DAT contient une date sous ce format : "AAAA-MM-DD 00:00:00"
Voici le message d'erreur :
SQL##f - SqlState: S0022, ErrorCode: 904, ErrorMsg: [Oracle][ODBC][Ora]ORA-00904: "WEEK" : identificateur non valide
Je me retrouve bredouille dans mes recherches, donc je fait appel à vous!
Merci de votre aide.
Bonjour Thomas,
La raison pour laquelle vous avez cette erreur est que Oracle ne reconnait pas la fonction Week() que vous utilisez dans votre requête.
Cette reqûete en mode "pass-through" ne doit comprendre que des appels de fonctions reconnues par Oracle, tandis que la partie "Preceding LOAD" (avant l'instruction SQL SELECT) peut comprendre des fonctions QlikView.
Ainsi, pour obtenir les données des 4 dernières semaines, je vous proposerais d'utiliser le filtre suivant:
WHERE MVT_DAT >= Trunc(SYSDATE-28); // 4 semaines
ou
WHERE MVT_DAT >= Trunc(Add_Months(SYSDATE, -1)); // 1 mois
Cordialement,
Philippe
Bonjour Thomas,
La raison pour laquelle vous avez cette erreur est que Oracle ne reconnait pas la fonction Week() que vous utilisez dans votre requête.
Cette reqûete en mode "pass-through" ne doit comprendre que des appels de fonctions reconnues par Oracle, tandis que la partie "Preceding LOAD" (avant l'instruction SQL SELECT) peut comprendre des fonctions QlikView.
Ainsi, pour obtenir les données des 4 dernières semaines, je vous proposerais d'utiliser le filtre suivant:
WHERE MVT_DAT >= Trunc(SYSDATE-28); // 4 semaines
ou
WHERE MVT_DAT >= Trunc(Add_Months(SYSDATE, -1)); // 1 mois
Cordialement,
Philippe
Merci bien pour l'explication et la solution qui fonctionne très bien!
Cordialement,
Thomas.
Bonjour,
J'ai une petite question SVP.
Je n'ai pas compris le -28 comment ça correpond à 4 semaine !
Merci d'avance
Le -28 correspond au nombre de jour,
1 semaine = 7 jours
4*7=28
Voila tout
Ah ok merci ^^