Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
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
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
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
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
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
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
e qui una discussione su join
NO il campo T§DTDO NON è NEL file BRARTI0F ma è nel file V5RDOC0J
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;
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