Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour,
je souhaiterais savoir ou est l'erreur dans mon code!!
Je souhaiterais joindre deux tables pour créer un 3 champs à partir des deux tables.
lorsque j'essaye de déboguer, il y a cette erreur qui s'affiche
Échec de lecture OLEDB
Échec de lecture OLED
SQL SELECT "DOC_DATE",
"DEP_CODE",
"DEV_CODE",
"DIV_CODE",
FROM ICP.dbo.DOCUMENTS;
J'ai enlevé quelques colonnes dans ce script parce qu'il y a beaucoup de colonnes.
Je souhaite créer le Champ QTE, POIDS, FRAIS1, voila mon code en entier:
/*
if([DOC_TYPE] = 'V',if([DOC_STYPE] = 'Cops Team','Yes','No') ) as [If static error is corp ops responsible]
=If (DOC_TYPE ='V', 'Distinction', If (Average>=60, 'Firs Class', If(Average>=50,'Second Class','fail')))
If([Working Status] = 'Consultant' AND wildmatch([Location],'3PP*'),'Offshore Consultant',
If([Working Status] = 'Consultant' AND not wildmatch([Location],'3PP*','Onshore Consultant',[Working Status]))
)as YourField
// VENTES
If([DOC_TYPE] = 'V' AND wildmatch([DOC_STYPE],'P'),'Pro-forma',
If([DOC_TYPE] = 'V' AND wildmatch([DOC_STYPE]),'D','Devis'),
If([DOC_TYPE] = 'V' AND wildmatch([DOC_STYPE]),'C','Commandes'),
If([DOC_TYPE] = 'V' AND wildmatch([DOC_STYPE]),'B','Bons de Livraison'),
If([DOC_TYPE] = 'V' AND wildmatch([DOC_STYPE]),'R','Bons de Retour'),
If([DOC_TYPE] = 'V' AND wildmatch([DOC_STYPE]),'F','Factures'),
If([DOC_TYPE] = 'V' AND wildmatch([DOC_STYPE]),'1','Factures Financières'),
If([DOC_TYPE] = 'V' AND wildmatch([DOC_STYPE]),'A','Avoirs'),
If([DOC_TYPE] = 'V' AND wildmatch([DOC_STYPE]),'0','Avoirs Financiers'),
// ACHAT
If([DOC_TYPE] = 'A' AND wildmatch([DOC_STYPE]),'D','Demandes de Prix'),
If([DOC_TYPE] = 'A' AND wildmatch([DOC_STYPE]),'C','Commandes'),
If([DOC_TYPE] = 'A' AND wildmatch([DOC_STYPE]),'B','Bons de Réceptions'),
If([DOC_TYPE] = 'A' AND wildmatch([DOC_STYPE]),'R','Bons de Retour'),
If([DOC_TYPE] = 'A' AND wildmatch([DOC_STYPE]),'F','Factures'),
If([DOC_TYPE] = 'A' AND wildmatch([DOC_STYPE]),'1','Factures Financières'),
If([DOC_TYPE] = 'A' AND wildmatch([DOC_STYPE]),'A','Avoirs'),
If([DOC_TYPE] = 'A' AND wildmatch([DOC_STYPE]),'0','Avoirs Financiers'),
) as 'Sous type de doc.'
*/
DIM_DOCUMENTS :
LOAD Month ("DOC_DATE") as Mois,
Year ("DOC_DATE") as Année,
date ("DOC_DATE") as Date,
"DOC_TYPE",
"DOC_STYPE",
If(DOC_TYPE = 'A', 'Achat', if(DOC_TYPE = 'V', 'Ventes')) as Type_de_doc,
/*Sous types de documents*/
If(DOC_TYPE = 'V',
if(DOC_STYPE = 'P', 'Pro-forma',
if(DOC_STYPE = 'D', 'Devis',
if(DOC_STYPE = 'C', 'Commandes',
if(DOC_STYPE = 'B', 'Bons de Livraison',
if(DOC_STYPE = 'R', 'Bons de Retour',
if(DOC_STYPE = 'F', 'Factures',
if(DOC_STYPE = '1', 'Factures Financières',
if(DOC_STYPE = 'A', 'Avoirs',
if(DOC_STYPE = '0', 'Avoirs Financiers',
))))))))),
if(DOC_TYPE = 'A',
if(DOC_STYPE = 'D', 'Demandes de Prix',
if(DOC_STYPE = 'C', 'Commandes',
if(DOC_STYPE = 'B', 'Bons de Réceptions',
if(DOC_STYPE = 'R', 'Bons de Retour',
if(DOC_STYPE = 'F', 'Factures',
if(DOC_STYPE = '1', 'Factures Financières',
if(DOC_STYPE = 'A', 'Avoirs',
if(DOC_STYPE = '0', 'Avoirs Financiers')
))))))))
) as Sous_Type_de_doc,
"DEP_CODE",
"DEV_CODE",
"DEV_CODE",
"DIV_CODE",
"DOC_DT_PRV",
"DOC_EN_TTC",
"DOC_ETAT",
"DOC_NUMERO",
"DOC_PIECE",
"DOC_TX_DEV",
"DOC_TXRFAC",
"NAT_CODE",
"PAY_CODE",
"PCF_CODE",
"PCF_PAYEUR",
"PCF_REMMIN",
"PCF_REMVAL",
"PRJ_CODE",
"REG_CODE",
"REP_CODE",
"SAL_CODE",
"SRV_CODE",
"TAR_CODE";
SQL SELECT "DOC_DATE",
"DEP_CODE",
"DEV_CODE",
"DIV_CODE",
"DOC_DT_PRV",
"DOC_EN_TTC",
"DOC_ETAT",
"DOC_NUMERO",
"DOC_PIECE",
Type_de_doc,
Sous_Type_de_doc,
"DOC_STYPE",
"DOC_TX_DEV",
"DOC_TXRFAC",
"DOC_TYPE",
"NAT_CODE",
"PAY_CODE",
"PCF_CODE",
"PCF_PAYEUR",
"PCF_REMMIN",
"PCF_REMVAL",
"PRJ_CODE",
"REG_CODE",
"REP_CODE",
"SAL_CODE",
"SRV_CODE",
"TAR_CODE"
FROM ICP.dbo.DOCUMENTS;
TmpTableDoc :
Load "DOC_STYPE",
"DOC_NUMERO"
FROM DOCUMENTS;
Join (TmpTableDoc)
Load "DOC_NUMERO",
"LIG_QTE"
From LIGNES;
Inner Join
LOAD *,
If(Match(DOC_STYPE ,'A', '0', 'R'),-(LIG_QTE),LIG_QTE) as 'Qte',
If(Match(DOC_STYPE ,'A', '0', 'R'),-(LIG_QTE * L.LIG_POIDSN),(LIG_QTE * L.LIG_POIDSN)) as 'Poids',
If(Match(DOC_STYPE ,'A', '0', 'R'),-(LIG_FRAIS * LIG_QTE),LIG_FRAIS * LIG_QTE) as 'Frais1'
Resident;
Je vous remercie par avance
Bonjour
Le pb est dans ton SQL Select : les champs Type_de_doc et Sous_Type_de_doc sont définis dans ton LOAD, ils ne viennent pas de la table DOCUMENTS, tu dois supprimer ces 2 lignes dans ton script SQL.
SQL SELECT "DOC_DATE",
"DEP_CODE",
"DEV_CODE",
"DIV_CODE",
"DOC_DT_PRV",
"DOC_EN_TTC",
"DOC_ETAT",
"DOC_NUMERO",
"DOC_PIECE",
"DOC_STYPE",
"DOC_TX_DEV",
"DOC_TXRFAC",
"DOC_TYPE",
"NAT_CODE",
"PAY_CODE",
"PCF_CODE",
"PCF_PAYEUR",
"PCF_REMMIN",
"PCF_REMVAL",
"PRJ_CODE",
"REG_CODE",
"REP_CODE",
"SAL_CODE",
"SRV_CODE",
"TAR_CODE"
FROM ICP.dbo.DOCUMENTS;
En espérant avoir bien compris
A+
Je vous remercie pour votre réponse, je les ai enlevé et c'est la même erreur qui s'affiche.
j'ai enlevé les doubles cote des champs dans le select mais c'est pareil
lorsque j’arrête le débogage, et je sélectionne les champs a afficher par exemple, beh, le Mois, l'année et la date que j'ai crée sont vides!!
Le champ DOC_DATE est bien un format date ?
J'avais eu le pb il y a quelques années : un champ qui paraissait date, mais qui ne l'était pas.
La formule MAKEDATE() m'a permis de corriger : il faut "découper" les données, pour pouvoir mettre Année, Mois, Jour entre parenthèse.
oui DOC_DATE est bien au format datetime, il est à ce format 2011-01-13 00:00:00.000, Ce que je cherche est d'avoir que l'année, le mot et la date (2011-01-13)
Mais quand je débogue, le problème Qlikview ne bloque pas sur la partie Load, mais celle du SELECT
J'ai essayé d'enlever DOC_DATE, juste pour vois, il m'affiche qu'il y a DOC_DATE qui manque. lorsque je le rajoute il y a l'erreur Échec de lecture OLEDB et jointure.