Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
marco_puccetti
Partner - Creator
Partner - Creator

Left Join Between Tables

Hello i need to get a left join between two tables A and B related by a key. The statement is this:

SVGES106_Assicurato_tmp:

LOAD

  AACONFIP            AS "Anni di contribuzione",

    AAETA              AS "Età alla Decorrenza",

    APENSIONE          AS "Anno di Pensionamento",

//CDISTPROPR,

    CDPARENT            AS "Grado di Parentela",

    CDPREVCOM          AS "Codice Previdenza Complementare",

    CDPREVOBB          AS "Codice Previdenza",

    CDPROFGEST          AS "Codice Professione Gestore",

    CDTPLAV            AS "Tipologia di lavoratore",

    Date(DTISCRFIP)    AS "Data Iscrizione Fondo Pensione",

    Date(DTPENSIONE)    AS "Data Pensionamento",

    FLAUTCASS    AS "Flag Trattamento Dati Personali a Scopo Commerciale",

    FLAUTPASS          AS "Flag Trattamento Dati Personali",

    FLBSAL              AS "Flag Buona Salute",

    FLFUMAT        AS "Flag Fumatore",

    MATRICOLA          AS "Matricola",

    NUOGG              AS "NUOGG",

    NURELAZ, //CAMPO CHIAVE GENERICO PER DATI DI POLIZZA//

    NUSOGG              AS "Numero soggetto"

FROM

$(QVD_PATH)\SVGES106.QVD (qvd);

Left Join

SVGES005_Soggetti_tmp:

LOAD

      CDISTPROPR      AS "Codice istituto proprietario",

      CDCAPRES        AS "Codice C.A.P. residenza/sede legale",

      CDFISC          AS "Codice Fiscale",

      CDISTCOLL        AS "CDISTCOLL",

      DSCOGNOME        AS "Cognome/ragione sociale",

      DSLOCNASC        AS "Codice comune di nascita",

      DSLOCRES        AS "Comune di residenza/sede legale",

      DSNOME          AS "Nome",

      DSVIARES        AS "Indirizzo di residenza/sede legale",

      Date(DTNASC)    AS "Data di nascita/costituzione",

      NUSOGG          AS "Numero soggetto",

      NUTELRES        AS "Numero di telefono residenza"

FROM

$(QVD_PATH)\SVGES005.QVD (qvd);

SVGES106_Assicurato:

Load *

resident

SVGES106_Assicurato_tmp;

Drop Table SVGES106_Assicurato_tmp;

Drop Table SVGES005_Soggetti_tmp;

Drop Field "Numero soggetto";

What's wrong in the script? I can't create the SVGES106_Assicurato that has not to contain the "Numero soggetto" field.

In particular which table is created by the first Left Join statement? Is it correct to use SVGES106_Assicurato_tmp.

Thanks

Marco

13 Replies
Anonymous
Not applicable

Remove this line: "SVGES005_Soggetti_tmp:"

Change to "Left Join (SVGES106_Assicurato_tmp)"

Your table "SVGES106_Assicurato_tmp" is gonna be your new joined table.

manojkulkarni
Partner - Specialist II
Partner - Specialist II

TableA:

Load ID,*

FROM Table1;

Left Join (TableA)

Load ID, *

From Table2;

go thru to understand how joins work.

Understanding Join, Keep and Concatenate

stigchel
Partner - Master
Partner - Master

I would say that you don't need the temp tables, so

SVGES106_Assicurato:

LOAD

  AACONFIP            AS "Anni di contribuzione",

    AAETA              AS "Età alla Decorrenza",

    APENSIONE          AS "Anno di Pensionamento",

//CDISTPROPR,

    CDPARENT            AS "Grado di Parentela",

    CDPREVCOM          AS "Codice Previdenza Complementare",

    CDPREVOBB          AS "Codice Previdenza",

    CDPROFGEST          AS "Codice Professione Gestore",

    CDTPLAV            AS "Tipologia di lavoratore",

    Date(DTISCRFIP)    AS "Data Iscrizione Fondo Pensione",

    Date(DTPENSIONE)    AS "Data Pensionamento",

    FLAUTCASS    AS "Flag Trattamento Dati Personali a Scopo Commerciale",

    FLAUTPASS          AS "Flag Trattamento Dati Personali",

    FLBSAL              AS "Flag Buona Salute",

    FLFUMAT        AS "Flag Fumatore",

    MATRICOLA          AS "Matricola",

    NUOGG              AS "NUOGG",

    NURELAZ, //CAMPO CHIAVE GENERICO PER DATI DI POLIZZA//

    NUSOGG              AS "Numero soggetto"

FROM

$(QVD_PATH)\SVGES106.QVD (qvd);

Left Join

LOAD

      CDISTPROPR      AS "Codice istituto proprietario",

      CDCAPRES        AS "Codice C.A.P. residenza/sede legale",

      CDFISC          AS "Codice Fiscale",

      CDISTCOLL        AS "CDISTCOLL",

      DSCOGNOME        AS "Cognome/ragione sociale",

      DSLOCNASC        AS "Codice comune di nascita",

      DSLOCRES        AS "Comune di residenza/sede legale",

      DSNOME          AS "Nome",

      DSVIARES        AS "Indirizzo di residenza/sede legale",

      Date(DTNASC)    AS "Data di nascita/costituzione",

      NUSOGG          AS "Numero soggetto",

      NUTELRES        AS "Numero di telefono residenza"

FROM

$(QVD_PATH)\SVGES005.QVD (qvd);

Drop Field "Numero soggetto";

Anonymous
Not applicable

Supposing you don't do anything on the resident table, you don't need them.

stigchel
Partner - Master
Partner - Master

To make sure that the drop field statement is referring to the right table it is also probably better to include the table name

Drop field "Numero soggetto"

from

SVGES106_Assicurato;

marco_puccetti
Partner - Creator
Partner - Creator
Author

I need that Table SVGES106_Assicurato_tmp would be joined with SVGES005_Soggetti_tmp

in order to generate the new table SVGES106_Assicurato.

Can you write me the exact syntax of left join?

Thanks

Marco

Anonymous
Not applicable

Hi Marco,

Try below:

SVGES106_Assicurato_tmp:

LOAD

  AACONFIP            AS "Anni di contribuzione",

    AAETA              AS "Età alla Decorrenza",

    APENSIONE          AS "Anno di Pensionamento",

//CDISTPROPR,

    CDPARENT            AS "Grado di Parentela",

    CDPREVCOM          AS "Codice Previdenza Complementare",

    CDPREVOBB          AS "Codice Previdenza",

    CDPROFGEST          AS "Codice Professione Gestore",

    CDTPLAV            AS "Tipologia di lavoratore",

    Date(DTISCRFIP)    AS "Data Iscrizione Fondo Pensione",

    Date(DTPENSIONE)    AS "Data Pensionamento",

    FLAUTCASS    AS "Flag Trattamento Dati Personali a Scopo Commerciale",

    FLAUTPASS          AS "Flag Trattamento Dati Personali",

    FLBSAL              AS "Flag Buona Salute",

    FLFUMAT        AS "Flag Fumatore",

    MATRICOLA          AS "Matricola",

    NUOGG              AS "NUOGG",

    NURELAZ, //CAMPO CHIAVE GENERICO PER DATI DI POLIZZA//

    NUSOGG              AS "Numero soggetto"

FROM

$(QVD_PATH)\SVGES106.QVD (qvd);

SVGES005_Soggetti_tmp:

LOAD

      CDISTPROPR      AS "Codice istituto proprietario",

      CDCAPRES        AS "Codice C.A.P. residenza/sede legale",

      CDFISC          AS "Codice Fiscale",

      CDISTCOLL        AS "CDISTCOLL",

      DSCOGNOME        AS "Cognome/ragione sociale",

      DSLOCNASC        AS "Codice comune di nascita",

      DSLOCRES        AS "Comune di residenza/sede legale",

      DSNOME          AS "Nome",

      DSVIARES        AS "Indirizzo di residenza/sede legale",

      Date(DTNASC)    AS "Data di nascita/costituzione",

      NUSOGG          AS "Numero soggetto",

      NUTELRES        AS "Numero di telefono residenza"

FROM

$(QVD_PATH)\SVGES005.QVD (qvd);

NoConcatenate

SVGES106_Assicurato:

Load *

resident

SVGES106_Assicurato_tmp;

left join(SVGES106_Assicurato)

Load *

resident

SVGES005_Soggetti_tmp;

Drop Table SVGES106_Assicurato_tmp;

Drop Table SVGES005_Soggetti_tmp;

Drop Field "Numero soggetto";

marco_puccetti
Partner - Creator
Partner - Creator
Author

Now I have changed so, but it still is not working:

SVGES005_Soggetti:

LOAD

  CDISTPROPR      AS "Codice istituto proprietario",

      CDCAPRES        AS "Codice C.A.P. residenza/sede legale",

      CDFISC          AS "Codice Fiscale",

      CDISTCOLL        AS "CDISTCOLL", 

      DSCOGNOME        AS "Cognome/ragione sociale",

      DSLOCNASC        AS "Codice comune di nascita",

      DSLOCRES        AS "Comune di residenza/sede legale",

      DSNOME          AS "Nome",

      DSVIARES        AS "Indirizzo di residenza/sede legale",

      Date(DTNASC)    AS "Data di nascita/costituzione",

      NUSOGG          AS "Numero soggetto",

      NUTELRES        AS "Numero di telefono residenza"

FROM

$(QVD_PATH)\SVGES005.QVD (qvd);

SVGES106_Assicurato:

Left Join (SVGES005_Soggetti)

LOAD

  AACONFIP            AS "Anni di contribuzione",

    AAETA              AS "Età alla Decorrenza",

    APENSIONE          AS "Anno di Pensionamento",

//CDISTPROPR,

    CDPARENT            AS "Grado di Parentela",

    CDPREVCOM          AS "Codice Previdenza Complementare",

    CDPREVOBB          AS "Codice Previdenza",

    CDPROFGEST          AS "Codice Professione Gestore",

    CDTPLAV            AS "Tipologia di lavoratore",

    Date(DTISCRFIP)    AS "Data Iscrizione Fondo Pensione",

    Date(DTPENSIONE)    AS "Data Pensionamento",

    FLAUTCASS    AS "Flag Trattamento Dati Personali a Scopo Commerciale",

    FLAUTPASS          AS "Flag Trattamento Dati Personali",

    FLBSAL              AS "Flag Buona Salute",

    FLFUMAT        AS "Flag Fumatore",

    MATRICOLA          AS "Matricola",

    NUOGG              AS "NUOGG",

    NURELAZ, //CAMPO CHIAVE GENERICO PER DATI DI POLIZZA//

    NUSOGG              AS "Numero soggetto"

FROM

$(QVD_PATH)\SVGES106.QVD (qvd);


I need the table SVGES106_Assicurato data with added the table of SVGES005_Soggetti is it correct?


Thanks

Marco

Anonymous
Not applicable

Try this


SVGES005_Soggetti:

LOAD

  CDISTPROPR      AS "Codice istituto proprietario",

      CDCAPRES        AS "Codice C.A.P. residenza/sede legale",

      CDFISC          AS "Codice Fiscale",

      CDISTCOLL        AS "CDISTCOLL",

      DSCOGNOME        AS "Cognome/ragione sociale",

      DSLOCNASC        AS "Codice comune di nascita",

      DSLOCRES        AS "Comune di residenza/sede legale",

      DSNOME          AS "Nome",

      DSVIARES        AS "Indirizzo di residenza/sede legale",

      Date(DTNASC)    AS "Data di nascita/costituzione",

      NUSOGG          AS "Numero soggetto",

      NUTELRES        AS "Numero di telefono residenza"

FROM

$(QVD_PATH)\SVGES005.QVD (qvd);

 

Left Join (SVGES005_Soggetti)

LOAD

  AACONFIP            AS "Anni di contribuzione",

    AAETA              AS "Età alla Decorrenza",

    APENSIONE          AS "Anno di Pensionamento",

//CDISTPROPR,

    CDPARENT            AS "Grado di Parentela",

    CDPREVCOM          AS "Codice Previdenza Complementare",

    CDPREVOBB          AS "Codice Previdenza",

    CDPROFGEST          AS "Codice Professione Gestore",

    CDTPLAV            AS "Tipologia di lavoratore",

    Date(DTISCRFIP)    AS "Data Iscrizione Fondo Pensione",

    Date(DTPENSIONE)    AS "Data Pensionamento",

    FLAUTCASS    AS "Flag Trattamento Dati Personali a Scopo Commerciale",

    FLAUTPASS          AS "Flag Trattamento Dati Personali",

    FLBSAL              AS "Flag Buona Salute",

    FLFUMAT        AS "Flag Fumatore",

    MATRICOLA          AS "Matricola",

    NUOGG              AS "NUOGG",

    NURELAZ, //CAMPO CHIAVE GENERICO PER DATI DI POLIZZA//

    NUSOGG              AS "Numero soggetto"

FROM

$(QVD_PATH)\SVGES106.QVD (qvd);