Qlik Community

Qlik Education Discussions

Discussion Board for collaboration related to Qlik Education.

Not applicable

Ordinamento tabelle e aggiunta campi

Salve a tutti,

il problema che ho trovato questa volta riguarda l'ordinamento della tabella ORDINI_FASI_CONS_NEW e l'aggiunta di un campo calcolato.

Nell'esecuzione dello script che vi allego quì sotto, non vengono trovate le tabelle ORDINI_FASI_CONS_NEW_NEW e ORDINI_FASI_CONS_DEF.

Secondo il mio parere dev'essere il drop table che fa danni ma non ho idea di come potrei sistemare la situazione.

Obiettivo: ordinare la tabella ORDINI_FASI_CONS_NEW (o ORDINI_FASI_CONS visto che sono collegate)  per CODICE_ORDINE e NUMERO_FASE e, successivamente, aggiungere il campo calcolato SCARTI.

Vi ringrazio in anticipo.

5 Replies
MVP
MVP

Re: Ordinamento tabelle e aggiunta campi

probabilmente non viene trovata la NEW_NEW perchè in questo punto quel che carichi viene appeso alla preesistente NEW: quando Qlik carica una tabella con la stessa struttura di una tabella già in memoria la appende all'esistente (concatena automaticamente, simile ad una union all sql)

x evitare questo automatismo prima del LOAD metti un NOCONCATENATE

ORDINI_FASI_CONS_NEW_NEW:
LOAD *   
resident ORDINI_FASI_CONS
ORDER BY CODICE_ORDINE, NUMERO_FASE;

Not applicable

Re: Ordinamento tabelle e aggiunta campi

Sembra che il NOCONCATENATE faccia danni perché non termina mai l'esecuzione dello script

MVP
MVP

Re: Ordinamento tabelle e aggiunta campi

probabile che ora arrivi al termine dello script  ma manchi un drop di qualche tabella in fondo

prova in debug


Not applicable

Re: Re: Ordinamento tabelle e aggiunta campi

Niente, ho provato in debug e mi da lo stesso errore più l'errore del drop.

Allego quì sotto lo script così puoi accertarti che ci siano tutti i drop table necessari (forse troppi??)

MVP
MVP

Re: Ordinamento tabelle e aggiunta campi

// questo pezzo serve? i 2 campi calcolati mi pare possano essere calcolati al punto precedente

// spostando il  codice

//ORDINI_FASI_CONS_NEW:
//
load * ,
//.......

//'NULLA'))))))) AS SUAA,
//
if((IF(STATO_ULTIMO_AVANZAMENTO='F','F',
//.......

//'NULLA'))))))))='F','FATTO','DA FARE') as SITUAZ_ODL
//
resident ORDINI_FASI_CONS;


// questo va commentato, se la vuoi usare al passo successivo

//drop table ORDINI_FASI_CONS;    
    
ORDINI_FASI_CONS_NEW_NEW:

// qui serve una noconcatenate, altrimenti concatena automaticamente e

// non crea la ...CONS_NEW_NEW ma la mette in ORDINI_FASI_CONS 

noconcatenate
LOAD
*   
resident ORDINI_FASI_CONS
ORDER BY CODICE_ORDINE, NUMERO_FASE;

drop table ORDINI_FASI_CONS;


// aggiungi questo exit script e vedi come va, se ok toglilo e vai sino alla fine

exit script;

ORDINI_FASI_CONS_DEF:
load *,
if(CODICE_ORDINE=peek(CODICE_ORDINE) and NUMERO_FASE>PEEK(NUMERO_FASE) ,QUANTITA_BUONA-PEEK(QUANTITA_BUONA),0) as SCARTI
resident ORDINI_FASI_CONS_NEW_NEW;
drop table ORDINI_FASI_CONS_NEW_NEW;

nel caso vi fossero ancora problemi, meglio avere i qvd per provare direttamente, se possibile

Community Browser