Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
Je dois réaliser un tableau me permettant de comparer l'efficacité des campagnes marketing par rapport au Chiffre d'affaire généré
La comparaison doit prendre en compte les périodes durant lesquelles, les campagnes se sont déroulées :
Magasin: CA N-1; CA N; Evolution par rapport les periodes ci dessous
Exemple de 2 campagnes avec leurs périodes respectives:
- NOEL2018 : du 05/12/2018 au 31/12/2018
- NOEL2017: du 01/12/2018 au 27/12/2018
Dans mon script, j'ai
- un fichier QVD pour mes ventes: NumFac;Client;Article;Qté;Punet;CA;Date_Facturation
- un fichier Excel avec le code de la campagne, le cout, le nombre de catalogue envoyé, la date de début, la date de fin de la campagne
- un calendrier qui a été généré selon le modèle ci dessous (voir en bas de page):
Ma question est donc la suivante: Quand je sélectionne 2 campagnes, j'aimerai pouvoir visualiser le CA facturé généré durant ces deux campagnes? En l'occurence, le CA généré entre le 01/12/2017 et 27/12/2017 et entre le du 05/12/2018 et 31/12/2018
Merci de votre aide car je sèche... 😉
Loic M.
--------------------------------------------------------------------------------
//CALENDRIER
PERIODE_FISCALE:
LOAD * INLINE [
MIN, MAX, PERIODE
01/03/2016, 28/02/2017, 2017
01/03/2017, 28/02/2018, 2018
01/03/2018, 28/02/2019, 2019];
CALENDRIER:
LOAD
Date($(vDateMin)+RecNo()) as Date_Facturation,
month($(vDateMin)+RecNo()) as [Mois_fiscal],
num(Month($(vDateMin)+RecNo()))-3 as FiscalMonthNum,
Day($(vDateMin)+RecNo()) as [Jour],
'T'&ceil(month($(vDateMin)+RecNo())/3) as [Trimestre],
WeekDay($(vDateMin)+RecNo()) as [Jour semaine]
AUTOGENERATE($(vNbJours));
LEFT Join
IntervalMatch(Date_Facturation)
LOAD
MIN,
MAX
Resident PERIODE_FISCALE;
JOIN
LOAD *
Resident PERIODE_FISCALE;
DROP TABLE PERIODE_FISCALE;
En fait non puisque Date_Début_Campagne et Date_Fin_Campagne apparaissent uniquement dans le calendrier Campagne, si je les rajouter dans mon script suivant, j'ai à nouveau une clé synthétique entre Date, Date_Début_Campagne et Date_Fin_Campagne....
Si je ne rajoute pas les deux dates, je n'ai aucune associativité...
L'idée est d'avoir un modèle comme ceci :
Aurélien,
J'ai essayé, en fait j'ai plusieurs tables au départ:
- Les ventes
- Le descriptifs des campagnes (avec le champ K_Campagne)
- Le nombre de catalogues envoyés répart par code postal (avec le champ K_Campagne)
- La liste des clients destinataire des catalogues (avec le champ K_Campagne)
- La liste des Articles concernés par la promotion su cette campagnes
--> J'ai concaténé toutes les tables avec un
- TYPE_FAIT=VENTE pour les vente
- TYPE_FAIT=DESCRIPTIF_CAMPAGNE
- TYPE_FAIT=REPARTITION_CATALOGUE_CAMPAGNE
- TYPE_FAIT=ARTICLE_CAMPAGNE
--> Je réalise un store into CAMPAGNES_VENTES.QVD(QVD)
J'obtiens donc une seule table avec toutes mes informations.
Mais si je fais comme tu me le préconises, je peux effectivement filtrer par K_Campagne, j'ai donc mon CA sur la période de ma campagne mais je n'ai plus le détail par Campagne à savoir: le cout, le nombre de catalogue envoyé par Code postal, les articles concernés et les analyses croisées que je souhaiterai faire
Je ne sais pas si je suis plus clair...
Loïc,
Peut-être en ajoutant un champ : date_k_campagne dans la table de fait
Mettre une table de lien entre le calendrier et les faits.
Niveau script ça peut donner ça :
//lien avec les campagnes
CALENDRIER_CAMPAGNE:
LOAD K_CAMPAGNE,
Date_Début_Campagne,
Date_Fin_Campagne
FROM
(ooxml, embedded labels, table is Feuil1);
LEFT Join (CALENDRIER_CAMPAGNE)
IntervalMatch(Date)
LOAD
Date_Début_Campagne,
Date_Fin_Campagne
Resident CALENDRIER_CAMPAGNE;
Lien:
Load
*,
Date & '|' & K_CAMPAGNE as _key_Date_Capagne
resident CALENDRIER_CAMPAGNE
;
drop table CALENDRIER_CAMPAGNE;
concatenate(Lien)
Load distinct
_key_Date_Capagne,
Date,
K_CAMPAGNE
resident CAMPAGNES_VENTE
;
drop fields K_CAMPAGNE, Date from CAMPAGNES_VENTE;
Salut Aurélien,
J'ai essayé et je pense que c'est une bonne idée mais j'ai encore une erreur:
Table introuvable
concatenate(LIEN)
Load distinct
_key_Date_Capagne,
Date,
K_Campagne
resident CAMPAGNES_VENTE
Voici mon script:
//CALENDRIER ES VENTES
PERIODE_FISCALE:
LOAD * INLINE [
MIN, MAX, PERIODE
01/03/2011, 28/02/2012, 2012
01/03/2012, 28/02/2013, 2013
01/03/2013, 28/02/2014, 2014
01/03/2014, 28/02/2015, 2015
01/03/2015, 29/02/2016, 2016
01/03/2016, 28/02/2017, 2017
01/03/2017, 28/02/2018, 2018
01/03/2018, 28/02/2019, 2019];
CALENDRIER:
LOAD
Date($(vDateMin)+RecNo()) as Date,
//Year($(vDateMin)+RecNo()) as [Fiscal Year],
month($(vDateMin)+RecNo()) as [Mois_fiscal],
// Date($(vDateMin)+RecNo()) as Date_Création_Client,
// month(Date($(vDateMin)+RecNo())) as Mois_Création_Client
num(Month($(vDateMin)+RecNo()))-3 as FiscalMonthNum,
Day($(vDateMin)+RecNo()) as [Jour],
'T'&ceil(month($(vDateMin)+RecNo())/3) as [Trimestre],
WeekDay($(vDateMin)+RecNo()) as [Jour semaine]
AUTOGENERATE($(vNbJours));
join
LOAD Date,
Cumul_mois,
Cumul_annuel
FROM
$(vCheminBdd)jours_ouvrés.xlsx
(ooxml, embedded labels, table is Feuil1);
//lien avec les campagnes
CALENDRIER_CAMPAGNE:
LOAD K_Campagne,
Date_Début_Campagne,
Date_Fin_Campagne
FROM
(ooxml, embedded labels, table is Feuil1);
LEFT Join (CALENDRIER_CAMPAGNE)
IntervalMatch(Date)
LOAD
Date_Début_Campagne,
Date_Fin_Campagne
Resident CALENDRIER_CAMPAGNE;
LIEN:
Load
*,
Date & '|' & K_Campagne as _key_Date_Capagne
resident CALENDRIER_CAMPAGNE;
drop table CALENDRIER_CAMPAGNE;
concatenate(LIEN)
Load distinct
_key_Date_Capagne,
Date,
K_Campagne
resident CAMPAGNES_VENTE;
drop fields K_Campagne, Date from CAMPAGNES_VENTE;
*/
//exit script;
Ensuite j'ai mon QVD avec les fAITS
Si tu as une idée, je suis preneur...;-)
Salut Loïc,
La table CAMPAGNES_VENTE n'existe pas au moment de l’exécution de
concatenate(LIEN)
Load distinct
_key_Date_Capagne,
Date,
K_Campagne
resident CAMPAGNES_VENTE