Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Join us to spark ideas for how to put the latest capabilities into action. Register here!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Error Field not found - <FIELDNAME>

hello,
If anyone can help me please !!
I have a problem while loading my tables on Qlikview.
I found a mistake Champ - <DEV_LIB>. Yet the field is in my and my select LOAD. I can not find the error. Could you tell me what should I do?
I could not make the joins between tables. I have 9 tables. how can i do?


Here is my code:

SET ThousandSep=' ';

SET DecimalSep=',';

SET MoneyThousandSep=' ';

SET MoneyDecimalSep=',';

SET MoneyFormat='# ##0,00 €;-# ##0,00 €';

SET TimeFormat='hh:mm:ss';

SET DateFormat='DD/MM/YYYY';

SET TimestampFormat='DD/MM/YYYY hh:mm:ss[.fff]';

SET MonthNames='janv.;févr.;mars;avr.;mai;juin;juil.;août;sept.;oct.;nov.;déc.';

SET DayNames='lun.;mar.;mer.;jeu.;ven.;sam.;dim.';

/* *************** Activation des options globales au document *************** */

/* Connexion OLEDB SQL Server  2014 */

OLEDB CONNECT TO [Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ICP;Data Source=***************;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=********************;Use Encryption for Data=False;Tag with column collation when possible=False];

/*******Variables ******/

set vSaveQVD = ;

DOCUMENTS:

LOAD     "DOC_DATE",

        "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";

SQL SELECT DOC_DATE,

            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;

STORE DOCUMENTS into $(vSaveQVD) DOCUMENTS.QVD(qvd);

DROP TABLE DOCUMENTS;

DOCUMENTS:

LOAD     "DOC_DATE",

        Month(DOC_DATE) as [Mois],

        Year("DOC_DATE") as [Année],

        Date("DOC_DATE") as [Date],

        If(DOC_TYPE = 'A', 'Achat', if(DOC_TYPE = 'V', 'Ventes')) as [Type de doc],

        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],

        "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  $(vSaveQVD) DOCUMENTS.QVD(qvd);

QUALIFY *;

UNQUALIFY   "DOC_NUMERO", 

            "DEV_CODE",

            "DIV_CODE",

            "PAY_CODE",

            "PCF_CODE",

            "REG_CODE",

            "REP_CODE",

            "SAL_CODE",

            "SRV_CODE",

            "TAR_CODE";

SQL SELECT  "DEV_CODE",

            "DOC_DATE",

            "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 DOCUMENTS;

/*WHERE DOC_TYPE IN ('A','V')*/

DEVISES:

LOAD     "DEV_CODE",

        "DEV_LIB",

        "DEV_MONEY",

        "DEV_MONEYS",

        "DEV_FORMAT",

        "DEV_NB_DEC",

        "DEV_SYMBOL",

        "DEV_DT_ACT",

        "DEV_INCERT",

        "DEV_COURS",

        "DEV_DTEURO",

        "DEV_EURO",

        "DEV_DORT",

        "DEV_DTMAJ",

        "DEV_USRMAJ",

        "DEV_NUMMAJ";

       

SQL SELECT  DEV_CODE,

            DEV_LIB,

            DEV_MONEY,

            DEV_MONEYS,

            DEV_FORMAT,

            DEV_NB_DEC,

            DEV_SYMBOL,

            DEV_DT_ACT,

            DEV_INCERT,

            DEV_COURS,

            DEV_DTEURO,

            DEV_EURO,

            DEV_DORT,

            DEV_DTMAJ,

            DEV_USRMAJ,

            DEV_NUMMAJ

FROM ICP.dbo.DEVISES;

STORE DEVISES into $(vSaveQVD) DEVISES.QVD(qvd);

DROP TABLE DEVISES;

DEVISES:

LOAD    DEV_CODE,

        DEV_LIB,

        DEV_MONEY,

        DEV_MONEYS,

        DEV_FORMAT,

        DEV_NB_DEC,

        DEV_SYMBOL,

        DEV_DT_ACT,

        DEV_INCERT,

        DEV_COURS,

        DEV_DTEURO,

        DEV_EURO,

        DEV_DORT,

        DEV_DTMAJ,

        DEV_USRMAJ,

        DEV_NUMMAJ

FROM $(vSaveQVD) DEVISES.QVD(qvd);

QUALIFY *;

UNQUALIFY "DEV_CODE";

SQL SELECT "DEV_CODE",

        "DEV_LIB",

        "DEV_MONEY",

        "DEV_MONEYS",

        "DEV_FORMAT",

        "DEV_NB_DEC",

        "DEV_SYMBOL",

        "DEV_DT_ACT",

        "DEV_INCERT",

        "DEV_COURS",

        "DEV_DTEURO",

        "DEV_EURO",

        "DEV_DORT",

        "DEV_DTMAJ",

        "DEV_USRMAJ",

        "DEV_NUMMAJ"

From DEVISES;

LIGNES:

LOAD "DOC_NUMERO",

    "LIG_NUMERO",

    "LIG_SUBNUM",

    "LIG_QTE",

    "REP_CODE",

    "ART_CODE",

    "ART_NCOLIS",

    "ART_TGAMME",

    "DEP_CODE",

    "PRJ_CODE",

    "SAL_CODE",

    "TAR_CODE",

    "LIG_P_BRUT",

    "LIG_TOTAL",

    "NAT_TVATX",

    "LIG_COUT";

   

SQL SELECT     "DOC_NUMERO",

            "LIG_NUMERO",

            "LIG_SUBNUM",

            "LIG_QTE",

            "REP_CODE",

            "ART_CODE",

            "ART_NCOLIS",

            "ART_TGAMME",

            "DEP_CODE",

            "PRJ_CODE",

            "SAL_CODE",

            "TAR_CODE",

            "LIG_P_BRUT",

            "LIG_TOTAL",

            "NAT_TVATX",

            "LIG_COUT"

FROM ICP.dbo.LIGNES;

STORE LIGNES into $(vSaveQVD) LIGNES.QVD(qvd);

DROP TABLE LIGNES;

LIGNES:

LOAD AUTONUMBERHASH128(DOC_NUMERO& '|' &LIG_NUMERO& '|' &LIG_SUBNUM) AS ID_LIGNES,

      "DOC_NUMERO",

    "LIG_NUMERO",

    "LIG_SUBNUM",

    "LIG_QTE",

    "REP_CODE",

    "ART_CODE",

    "ART_NCOLIS",

    "ART_TGAMME",

    "DEP_CODE",

    "PRJ_CODE",

    "SAL_CODE",

    "TAR_CODE",

    "LIG_P_BRUT",

    "LIG_TOTAL",

    "NAT_TVATX",

    "LIG_COUT",

    "LIG_UB" as CODEL

from $(vSaveQVD) LIGNES.QVD(qvd);

QUALIFY *;

UNQUALIFY "DOC_NUMERO",

          "LIG_NUMERO",

          "LIG_SUBNUM",

          "DEP_CODE",

          "PRJ_CODE",

           "SAL_CODE",

           "TAR_CODE",

           "CODEL";

          

SQL SELECT     "DOC_NUMERO",

            "LIG_NUMERO",

            "LIG_SUBNUM",

            "LIG_QTE",

            "REP_CODE",

            "ART_CODE",

            "ART_NCOLIS",

            "ART_TGAMME",

            "DEP_CODE",

            "PRJ_CODE",

            "SAL_CODE",

            "TAR_CODE",

            "LIG_P_BRUT",

            "LIG_TOTAL",

            "NAT_TVATX",

            "LIG_COUT",

            "LIG_UB" as CODEL

From LIGNES

WHERE LIG_TYPE NOT IN ('x', 'X', 'T');

Thank you

14 Replies
rubenmarin

2 options:

- keep the qualify/unqualify approach

- renaming fields:No use of qualify/unqualify. The fields linking tables should have the same name, the others should have an unique name.

I think renaming fields is a best practice.

I usually have one document that creates the qvds with the original table names. No alias here.

Then I create the document for the user, reading from qvds. In this document is where I rename the fields.

In your document you only need to rename fields when you are reading from qvds:

LOAD ....

from $(vSaveQVD) FILENAME.QVD(qvd)

Hope I had explained.

Not applicable
Author

I will try it!!

Thank you very much.

Not applicable
Author

Hi,


I tried your method, but it always creates me $ syn.

I renamed

Then it all crashes and Qlikview bug.

What should I do?

Not applicable
Author

Hi,

Concatenate the Documents with the Inline Table

like

LOAD INLINE *

[ TestField

];

Concatenate

Documents:

-------------

--------------

--------------

concatenate

SQL SELECT DOC_DATE,

            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;

STORE DOCUMENTS into $(vSaveQVD) DOCUMENTS.QVD(qvd);

DROP TABLE DOCUMENTS;

This will help you...

rubenmarin

$Syn are created when there is more than one field with the same name in 2 tables, to avoid those you need to create a unique key field, usually this is done concatenating the different key fields,ie:

In Documents you can have:

LOAD DOC_NUMERO & '#' & DEV_CODE as IdDoc,

     DOC_NUMERO

...

and in devices:

LOAD DOC_NUMERO & '#' & DEV_CODE as IdDoc,

     DEV_CODE,

...

Note that DOC_NUMERO is only loaded in Documents and DEV_CODE only in Devices, IdDoc is the only field loaded in both tables.