Structure des tables - PT0CE¶
Table des matières¶
- Tables sources système
- Tables de mapping (CSV → Oracle)
- Tables temporaires de traitement
- Tables finales permanentes
- Requêtes d'analyse
Tables sources système¶
SYS_FACTURE_LIGNE¶
Table des transactions de vente.
Colonnes utilisées :
- ID_CLN_KEY : Clé client
- ID_ART : Identifiant article
- DT_CDE : Date commande
- MT_CAB : Montant CA brut
- QT_UF : Quantité unités de facturation
- MT_GM4 : Marge brute 4
- FG_HM : Flag hors mercuriale ('X' ou NULL)
- ID_MERC_HM : Type mercuriale
- ID_FAC : Numéro facture
- ID_LIG_FAC : Ligne facture
- ID_TYP_FAC : Type facture
- ID_TYP_CDE : Type commande
- FG_PRESTA : Flag prestation
- FG_MARCHANDISE : Flag marchandise
- ID_PRP : Prix origine
SYS_MD_CLIENT¶
Référentiel clients.
Colonnes utilisées :
- ID_CLN_KEY : Clé client
- ID_CLN : Code client
- ID_TC_CG : Type client groupe (RCI, RSI, RSC, RCC)
- ID_TC_CIBLE : Type client cible (PINDEP, MP_AO_, etc.)
- LC_ZDV_GRV : Zone géographique (IDF, NO, SO, etc.)
- LC_SFC_CIBLE : Segment foodservice cible
- ID_SFC_CIBLE : Code segment foodservice
- ID_RGC_GRV_SAP : Code région SAP
- ID_KAM : Key Account Manager
- LC_TC_INTRA : Type client intra
SYS_MD_ARTICLE¶
Référentiel articles.
Colonnes utilisées :
- ID_ART : Identifiant article
- LC_ART : Libellé article
- ID_GMM : Gamme merchandising
- LC_HIC_SYSCO_N1 : Hiérarchie niveau 1
- LC_HIC_SYSCO_N2 : Hiérarchie niveau 2
- LC_HIC_SYSCO_N3 : Hiérarchie niveau 3
- LC_HIC_SYSCO_N4 : Hiérarchie niveau 4
- LC_HIC_SYSCO_N5 : Hiérarchie niveau 5
- LC_HIC_SYSCO_N6 : Hiérarchie niveau 6
- LC_MRQ : Marque
SYS_MD_CONDITION¶
Conditions tarifaires (PAS/PRB).
Colonnes utilisées :
- ID_ART : Identifiant article
- ID_TYP_CND : Type condition (ZPRT=PAS, ZPRB=PRB)
- ID_TAR : Type tarif (01=RC, 02=COLL)
- ID_SEQ : Séquence (A506, A304)
- ID_ORG : Organisation (1000)
- MT_CND : Montant condition
- DT_DEB : Date début validité
- DT_FIN : Date fin validité
SYS_MD_CALENDRIER_SYSCO¶
Calendrier fiscal Sysco.
Colonnes utilisées :
- ID_SEM : Date
- ID_EXF : Exercice fiscal
- NO_TRF : Numéro trimestre fiscal
- NO_PEF : Numéro période fiscale
- NO_SMF : Numéro semaine fiscale
- FG_SEM_EN_COURS : Flag semaine en cours
Tables de mapping (CSV → Oracle)¶
PT0CE_TYPE_CLIENT_MAPPING¶
Mapping des types clients depuis Type_Client.csv.
CREATE TABLE PT0CE_TYPE_CLIENT_MAPPING (
TYPE_CLIENT VARCHAR2(100) NOT NULL, -- Ex: "RCI PI GI"
UNIVERS VARCHAR2(10) NOT NULL, -- ZOOM1/ZOOM2/ZOOM3
ID_TC_CG VARCHAR2(10) NOT NULL, -- Code groupe
ID_TC_CIBLE VARCHAR2(10) NOT NULL, -- Code cible
FG_HM VARCHAR2(1), -- '0' ou '1' (standardisé)
PRB NUMBER(1) NOT NULL, -- 1=RC, 2=COLL
CREATED_AT DATE DEFAULT SYSDATE
);
-- Index
CREATE INDEX IX_PT0CE_TYPE_CLIENT_MAPPING_MAIN
ON PT0CE_TYPE_CLIENT_MAPPING (UNIVERS, ID_TC_CG, ID_TC_CIBLE, FG_HM);
Rechargée à chaque run depuis le CSV pour garantir la fraîcheur.
PT0CE_TYPE_RESTAURANT_MAPPING¶
Mapping des types restaurants depuis Type_Restaurant.csv.
CREATE TABLE PT0CE_TYPE_RESTAURANT_MAPPING (
LC_SFC_CIBLE VARCHAR2(100) NOT NULL, -- Code SAP
TYPE_RESTAURANT VARCHAR2(100) NOT NULL, -- Type normalisé
CREATED_AT DATE DEFAULT SYSDATE
);
-- Index
CREATE INDEX IX_PT0CE_TYPE_RESTAURANT_MAPPING_LC_SFC
ON PT0CE_TYPE_RESTAURANT_MAPPING (LC_SFC_CIBLE);
Rechargée à chaque run depuis le CSV.
Tables temporaires de traitement¶
PT0CE_PAS_PRB_YYYYMMDD_HISTORY¶
Historique PAS jour par jour.
CREATE TABLE PT0CE_PAS_PRB_YYYYMMDD_HISTORY (
ID_ART VARCHAR2(50),
BUSINESS_DATE DATE,
PAS_NATIONAL_UNITAIRE NUMBER,
PAS_DATE_DEBUT DATE,
PAS_DATE_FIN DATE
);
-- Index pour performance
CREATE INDEX IX_PT0CE_PAS_PRB_HISTORY_LOOKUP
ON PT0CE_PAS_PRB_YYYYMMDD_HISTORY (ID_ART, BUSINESS_DATE);
PT0CE_PAS_PRB_YYYYMMDD¶
PAS/PRB actifs (derniers en date).
CREATE TABLE PT0CE_PAS_PRB_YYYYMMDD (
ID_ART VARCHAR2(50),
PAS_ACTIF NUMBER,
PRB_RC_ACTIF NUMBER,
PRB_COLL_ACTIF NUMBER,
DATE_EFFET DATE
);
PT0CE_MASTER_DATA_YYYYMMDD¶
Données enrichies avec marge nette.
Colonnes principales :
- ID_CLN, ID_ART
- DT_CDE
- TYPE_CLIENT, TYPE_RESTAURANT, GEO
- UNIVERS
- HIE_N1 à HIE_N6, HIE_MRQ
- QT_UF, MT_CAB, MT_GM4
- PAS_NATIONAL_UNITAIRE
- CAB_UNITAIRE
- MARGE_NETTE -- Calculée
- PRB_TO_USE -- Depuis mapping
PT0CE_CUBES_[ZOOM]_YYYYMMDD¶
Cubes calculés avec statistiques.
Colonnes principales :
- ID_ART, LC_ART
- TYPE_CLIENT, TYPE_RESTAURANT, GEO (NULL pour ZOOM3)
- HIE_N1 à HIE_N6, HIE_MRQ
- CUBE_TYPE -- 'MASTER' ou 'NATIONAL'
- PRB_TO_USE
- TRANSACTION_COUNT
- DISTINCT_MARGINS
- CA_TOTAL, GM4_TOTAL, VOLUME_TOTAL
- ECART_TYPE
- PERCENTILE_10 à PERCENTILE_90
PT0CE_CORRIDORS_[ZOOM]_YYYYMMDD¶
Corridors avec bornes calculées.
Colonnes ajoutées :
- SOURCE_LEVEL -- Niveau de remontée (1-21 ou -1)
- SOURCE_TYPE -- 'MASTER', 'NATIONAL' ou 'NO_DATA'
- PAS_ACTIF, PRB_RC_ACTIF, PRB_COLL_ACTIF
- BORNE_PL1_PL2 à BORNE_PL6_PLX
- ECART_PL1_PL2_PAS à ECART_PL6_PLX_PAS
PT0CE_PRICE_SENSITIVITY_[ZOOM]_YYYYMMDD¶
Analyse sensibilité (cubes MASTER uniquement).
Colonnes principales :
- ID_ART, LC_ART
- TYPE_CLIENT, TYPE_RESTAURANT, GEO
- NB_ORDERS -- Nombre commandes article
- FREQUENCY_RATIO -- Ratio vs total cube
- TOTAL_SALES -- CA article
- PCT_CUBE_SALES -- % du CA cube
- FREQUENCY_CLASS -- F1 ou F2
- SALES_CLASS -- S1 ou S2
- PRICE_SENSITIVITY -- HIGH/MEDIUM/LOW
Tables finales permanentes¶
PT0CE_DIMENSION_MAPPING_YYYYMMDD¶
Mapping dimensions → codes SAP (conservée pour PT1CE).
CREATE TABLE PT0CE_DIMENSION_MAPPING_YYYYMMDD (
ID_ART VARCHAR2(50),
UNIVERS VARCHAR2(10),
TYPE_CLIENT VARCHAR2(100),
TYPE_RESTAURANT VARCHAR2(100),
GEO VARCHAR2(100),
ID_TC_CIBLE VARCHAR2(10), -- Code SAP
ID_SFC_CIBLE VARCHAR2(10), -- Code SAP
ID_RGC_GRV_SAP VARCHAR2(10), -- Code SAP
MT_CAB_TOTAL NUMBER, -- CA de la combinaison
NB_TRANSACTIONS NUMBER
);
-- Index
CREATE INDEX IX_PT0CE_DIMENSION_MAPPING_DIMS
ON PT0CE_DIMENSION_MAPPING_YYYYMMDD (ID_ART, UNIVERS, TYPE_CLIENT, TYPE_RESTAURANT, GEO);
Important : Contient uniquement les combinaisons avec MT_CAB > 0.
PT0CE_CORRIDOR_HISTORY_[ZOOM]¶
Tables finales avec corridors complets.
Structure complète :
-- Identifiants
ID_ART VARCHAR2(50)
LC_ART VARCHAR2(200)
-- Dimensions
TYPE_CLIENT VARCHAR2(100)
TYPE_RESTAURANT VARCHAR2(100)
GEO VARCHAR2(100) -- NULL pour ZOOM3
-- Hiérarchie
HIE_N1 à HIE_N6, HIE_MRQ
-- Métadonnées
CATEGORY VARCHAR2(20) -- ZOOM1/ZOOM2/ZOOM3
CUBE_TYPE VARCHAR2(20) -- MASTER/NATIONAL
SOURCE_LEVEL NUMBER -- -1 à 22
SOURCE_TYPE VARCHAR2(20) -- MASTER/NATIONAL/NO_DATA
PRB_TO_USE NUMBER -- 1 ou 2
-- Statistiques
TRANSACTION_COUNT NUMBER
DISTINCT_MARGINS NUMBER
CA_TOTAL NUMBER
ECART_TYPE NUMBER
-- Prix référence
PAS_ACTIF NUMBER
PRB_RC_ACTIF NUMBER
PRB_COLL_ACTIF NUMBER
-- Bornes
BORNE_PL1_PL2 à BORNE_PL6_PLX
ECART_PL1_PL2_PAS à ECART_PL6_PLX_PAS
-- Percentiles
PERCENTILE_10 à PERCENTILE_90
-- Sensibilité (MASTER uniquement)
PRICE_SENSITIVITY VARCHAR2(20)
FREQUENCY_CLASS VARCHAR2(2)
SALES_CLASS VARCHAR2(2)
NB_ORDERS NUMBER
FREQUENCY_RATIO NUMBER
ARTICLE_SALES NUMBER
PCT_CUBE_SALES NUMBER
-- Audit
CREATED_AT DATE
LAST_UPDATED DATE
Requêtes d'analyse¶
Vérifier la cohérence des bornes¶
-- Les bornes doivent être croissantes
SELECT ID_ART, TYPE_CLIENT, TYPE_RESTAURANT
FROM PT0CE_CORRIDOR_HISTORY_ZOOM1
WHERE CUBE_TYPE = 'MASTER'
AND BORNE_PL1_PL2 IS NOT NULL
AND (
BORNE_PL1_PL2 > BORNE_PL2_PL3 OR
BORNE_PL2_PL3 > BORNE_PL3_PL4 OR
BORNE_PL3_PL4 > BORNE_PL4_PL5 OR
BORNE_PL4_PL5 > BORNE_PL5_PL6 OR
BORNE_PL5_PL6 > BORNE_PL6_PLX
);
Analyser la remontée hiérarchique¶
-- Distribution par niveau source
SELECT
SOURCE_LEVEL,
CASE
WHEN SOURCE_LEVEL = -1 THEN 'NATIONAL'
WHEN SOURCE_LEVEL BETWEEN 1 AND 3 THEN 'ID_ART'
WHEN SOURCE_LEVEL BETWEEN 4 AND 6 THEN 'HIE_N6'
-- etc.
WHEN SOURCE_LEVEL = 22 THEN 'NO_DATA'
END as NIVEAU,
COUNT(*) as NB_CUBES,
SUM(CA_TOTAL) as CA_TOTAL
FROM PT0CE_CORRIDOR_HISTORY_ZOOM1
GROUP BY SOURCE_LEVEL
ORDER BY SOURCE_LEVEL;