Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
maxgro
MVP
MVP

Re: ESTRAZIONE DELLA DATA

Ciao Luca

probabilmente sarebbe meglio aprire un post x domanda (eventualmente con un link alle precedenti) in modo che non sia una discussione a 3/4 persone . Chi vede questa discussione con la risposta già data presumo non la prenda in considerazione.

Cerco di interpretare le domande:

1) devi importare 2 file dal file system o sono tabelle di as400?

- dal file system trovi nello script editor, nel tab Data in basso a dx il bottone Table Files...., una sorta di importazione guidata

- da as400 vedi sopra

Load     ...;

SQL select ...........;

2) per quanto riguarda le chiavi, QLikview effettua automaticamente la join tra le tue 2 tabelle utilizzando i campi che hanno lo stesso nome, quindi se vuoi ottenere una join devi fare in modo che i nomi dei campi Qlikview siano uguali.

Come? Nella Load ad esempio puoi rinominare i campi

Tabella1:

Load

     a§codice as CampoDiJoin,

     campo2,

     ......;

SQl select a§codice, campo2, ....... from A§asdt;

Tabella2:

Load

     a§code11 as CampoDiJoin,

     campo4,

     .....;

SQL select a§code11, campo4, ...... from b§asdt;

dopo il reload (CTRL-R) le 2 tabelle saranno in join (lo vedi nel table viewer CTRL-T) tramite CampoDiJoin

Ciao

14 Replies
Not applicable

CIAO Massimo

ho provato a fare l'unione di due file ma mi da errore

ti scirvo lo script che ho inserito

!!!!!!!!!!!!!!!!!!!!!!!!!

odbc connect  to as400;

load

*,

year ( date#(t§dtdo, yyyymmdd')) as anno              ( mi estrae l'anno in una colonna a parte )

Load

     *,

     a§codice as CampoDiJoin,campo2 ;

SQL select a§codice, campo2,  from A§asdt;


Load

     *,

     a§code11 as CampoDiJoin,campo4 ;

SQL select a§code11, campo4, ...... from b§asdt;

;    

select*   
from S65024EA.SMEDATMOT.V5RDOC0J;

select *   
from S65024EA.SMEDATMOT.BRARTI0F


maxgro
MVP
MVP
Author

l'obiettivo è legare le 2 tabelle as400 A§asdt e b§asdt tramite i campi a§codice e a§codice11?

Così dovrebbe funzionare; ovviamente devi prima sostituire campo2, ...... e campo4, ...... con i veri campi as400 che io non conosco  (a meno che tu mi dica come si chiamano le tabelle as400, i campi e quali campi vuoi utilizzare per associare le tabelle in qlikview, ....)

odbc connect  to as400;

Tabella1:          // nome della tabella QV corrispondente alla tabella A§asdt di AS400

Load

     *,

     year ( date#(t§dtdo, yyyymmdd')) as anno,  //     ( mi estrae l'anno in una colonna a parte )

     a§codice as CampoDiJoin;

SQL

select

     a§codice,

     campo2, ........   // qui gli altri campi che ti servono della tabella as400  A§asdt

from A§asdt;         //  qui probabilmente serve qualcosa prima di A§asdt, la libreria, l'utente?

Tabella2:

Load

     *,

     a§code11 as CampoDiJoin;

SQL

select

     a§code11,

     campo4, ......      // qui gli altri campi che ti servono......    

from b§asdt;

se non funziona serve sapere l'errore che ti restituisce

Not applicable

Buongiorno Massimo

ti giro il mio script e continua a darmi l'errore

|

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='gen;feb;mar;apr;mag;giu;lug;ago;set;ott;nov;dic';
SET DayNames='lun;mar;mer;gio;ven;sab;dom';

ODBC CONNECT TO AS400;

LOAD

  *,
 
 
Year(Date#(T§DTDO, 'YYYYMMDD')) as ANNO,

 
Month(Date#(T§DTDO, 'YYYYMMDD')) as MESE,

 
Day(Date#(T§DTDO, 'YYYYMMDD')) as GIORNO
 
 
Where (T§DTDO >= '20080513'); 
 
A§ARTI as CampoDiJoin;
  
SQL SELECT "A§ARTI",
"A§DEAR",
"A§DEA2"
FROM S65024EA.SMEDATMOT.BRARTI0F;


R§CDOG as CampoDiJoin;

SQL SELECT "R§CDOG"
FROM S65024EA.SMEDATMOT.V5RDOC0J;

L’errore che mi da sono due il primo è questo

Comando sconosciuto

A§ARTI as CampoDiJoin

Il secondo è questo

Comando sconosciuto

R§CDOG as CampoDiJoin

Da quello che posso capire non fa il join infatti se dopo aver ricaricato i dati faccio CTRL + T non vedo il collegamento tra i due file .

grazie mille

maxgro
MVP
MVP
Author

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='gen;feb;mar;apr;mag;giu;lug;ago;set;ott;nov;dic';
SET DayNames='lun;mar;mer;gio;ven;sab;dom';

ODBC CONNECT TO AS400;


Tab1:
LOAD
  *,

  A§ARTI as CampoDiJoin,                              // ho spostato questa riga
 
Year(Date#(T§DTDO, 'YYYYMMDD')) as ANNO,
 
Month(Date#(T§DTDO, 'YYYYMMDD')) as MESE,
 
Day(Date#(T§DTDO, 'YYYYMMDD')) as GIORNO
Where (T§DTDO >= '20080513');   
SQL SELECT "A§ARTI",
"A§DEAR",
"A§DEA2"
FROM S65024EA.SMEDATMOT.BRARTI0F;

Tab2:
LOAD

    R§CDOG as CampoDiJoin;                        // ho spostato anche queasta riga
SQL SELECT "R§CDOG"
FROM S65024EA.SMEDATMOT.V5RDOC0J;




allego esempio di 2 tabelle in join lette da un mio db as400


facci sapere


Not applicable

mi da questo errore

Campo non trovato - <T§DTDO>

SQL SELECT "A§ARTI",

"A§DEAR",

"A§DEA2"

FROM S65024EA.SMEDATMOT.BRARTI0F






se io avessi ANCHE bisogno di COLLEGARE I DUE FILE ( V5RDOC0J - BRARTI0F ) SENZA CREARE UNA TABELLA NUOVA ???

GRAZIE 1000

maxgro
MVP
MVP
Author

Nalla tabella BRARTI0F c'èil campo T§DTDO?

Se sì aggiungilo nello script

SQL SELECT "A§ARTI",
"A§DEAR",
"A§DEA2",

"T§DTDO"                              // riga aggiunta
FROM S65024EA.SMEDATMOT.BRARTI0F;




<<se io avessi ANCHE bisogno di COLLEGARE I DUE FILE ( V5RDOC0J - BRARTI0F ) SENZA CREARE UNA TABELLA NUOVA ???>>

Qlikview effettua analisi tendenzialmente sulle sue tabelle per cui se vuoi fare analisi su quei 2 file devi estrarre i dati da as400 e creare almeno una tabella in Qlikview.

Se vuoi creare una sola tabella in Qlikview,  puoi effettuare la join direttamente su as400, esempio da adattare


TabellaQlikview:

Load  *;

SQL

     Select .........

     from V5RDOC0J, BRARTI0F

     where ..............

     ;


qui un ottimo doc di spiega delle varie opzioni di load

LOAD data into QlikView


e qui una discussione su join

Syntax to Join

Not applicable

NO il campo T§DTDO NON è NEL file BRARTI0F  ma è nel file V5RDOC0J

maxgro
MVP
MVP
Author

ODBC CONNECT TO AS400;

// legge da as400 3 campi di BRARTI0F

// e poi produce la tabella Tab1 Qlikview con 4 campi: 3 con gli stessi nomi di

// as400 (*) e CampoDiJoin

Tab1:
LOAD
  *,

  A§ARTI as CampoDiJoin,                             
SQL SELECT

     "A§ARTI",
     "A§DEAR",
     "A§DEA2"
FROM S65024EA.SMEDATMOT.BRARTI0F;


// legge da as400 2 campi di V5RDOC0J

// e poi produce la tabella Tab2 Qlikview con 4 campi: CampoDiJoin, ANNO, MESE, GIORNO 
Tab2:
LOAD

  R§CDOG as CampoDiJoin;                       

  Year(Date#(T§DTDO, 'YYYYMMDD')) as ANNO,
 
Month(Date#(T§DTDO, 'YYYYMMDD')) as MESE,
 
Day(Date#(T§DTDO, 'YYYYMMDD')) as GIORNO
Where (T§DTDO >= '20080513');   

SQL SELECT

     "R§CDOG",

     "T§DTDO"
FROM S65024EA.SMEDATMOT.V5RDOC0J;



Not applicable

Comando sconosciuto

Year(Date#(T§DTDO, 'YYYYMMDD')) as ANNO,

  Month(Date#(T§DTDO, 'YYYYMMDD')) as MESE,

  Day(Date#(T§DTDO, 'YYYYMMDD')) as GIORNO

Where (T§DTDO >= '20080513')



il campo T§DTDO è nel file V5RDOC0F