Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Échec de lecture OLEDB et jointure

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

Labels (1)
4 Replies
Anonymous
Not applicable
Author

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+

Not applicable
Author

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!!

Anonymous
Not applicable
Author

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.

Not applicable
Author

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.