5 Replies Latest reply: Sep 18, 2014 3:41 PM by Massimo Grossi RSS

    Ordinamento tabelle e aggiunta campi

    Michele Pierobon

      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.

        • Re: Ordinamento tabelle e aggiunta campi
          Massimo Grossi

          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;

          • Re: Ordinamento tabelle e aggiunta campi
            Massimo Grossi

            // 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