Skip to main content
Announcements
See what Drew Clarke has to say about the Qlik Talend Cloud launch! READ THE BLOG
cancel
Showing results for 
Search instead for 
Did you mean: 
DREFFO
Partner - Contributor
Partner - Contributor

codici alfanumerici

Premetto che i codici sono creati nel db come varchar.

Perché se in una tabella anagrafica ci sono codici come 01, 001 oppure 0001, che ovviamente sono codici diversi, QlikView li considera un unico codice?

8 Replies
alexandros17
Partner - Champion III
Partner - Champion III

Mi sembra strano, QV dovrebbe vederli come codici differenti, inviami il tuo script ...

DREFFO
Partner - Contributor
Partner - Contributor
Author

Di seguito lo script

i Dati sono caricati da un db SQL

anagraficaarticoli:

sql

select

codice,

descrizione

from anagraficaarticoli

order by codice;

ho provato anche questo, ma il risultato è il medesimo

Articoli:

LOAD * INLINE

[codart,Dscart

'01',Articolo 1

'001',Articolo 2

0001,Articolo 3

];

alexandros17
Partner - Champion III
Partner - Champion III

Prova a fare così:

anagraficaarticoli:

Load

text(codice) as codice,

descrizione;

select

codice,

descrizione

from anagraficaarticoli

order by codice;

se ancora non va allora usa il cast

select

cast(codice as varchar) as codice,

descrizione

from anagraficaarticoli

order by codice;

Fammi sapere ...

DREFFO
Partner - Contributor
Partner - Contributor
Author

La tua soluzione funziona per l'esempio che ti ho riportato, ma non è applicabile al nostro progetto in quanto molto articolato.

Il cast lo avevo già provato ma non funziona se non setti prima il tipo di dato come mi hai suggerito.

Le tabella vengono lette da SQlL Server e i campi sono numerosi.

Se deve essere usata questa soluzione la vedo alquanto pesante la modifica da fare nel progetto, visto che le tabelle che contengono il codice articolo sono numerose.

Il cast lo avevo già provato ma non funziona se non setti prima il tipo di dato come mi hai suggetito.

Non è possibile che QlikView usi il tipo di dati di SQL Server senza dover mettere mano a tutto lo script del progetto?

alexandros17
Partner - Champion III
Partner - Champion III

Io ho decine di tipi di codice differenti (customer, agent, material ... ) tutti che iniziano per 00nnnnn

e li leggo senza dover fare alcun aggiustamento ...

Sinceramente non saprei cosa pensare, quello che posso suggerirti per non dover riscrivere tutti i campi e quindi semplificare l'impatto della modifica è qualcosa del tipo:

Load

*,

text(codice) as myNewCod;

select

codice,

descrizione

from anagraficaarticoli

order by codice;

Alla fine fai una drop del campo codice ed una rename del campo myNewCod in codice ...

maxgro
MVP
MVP

Daniele

il comportamento potrà sembrare strano ma effettivamente è quello che tu hai descritto, l'ho già incontrato su Sql Server ed AS400 ma credo si possa estendere a tutti i dbms 

Devi usare text(.....)

"

Qlikview interprets your codes as numbers with a display format. The first 001 is interpreted as 1 with display format 001. The next value 01 is also interpreted as 1 and gets the same display format as the first 1 because a number can have only one display format. And so on for 002-02, 003-03 etc. The solution is to use the text() function

"

DREFFO
Partner - Contributor
Partner - Contributor
Author

Ok preso atto che QlikView ha questo comportamento, aprirò un'anomalia.

E' chiaro che codici articolo 01 e 001 sono molto ben distinti e un'analisi che mi raggruppi i suddetti codici non è accettabile.

maxgro
MVP
MVP

credo sia così x scelta (by design)

la tua domanda si ripete + volte nella community, ad esempio

Codice numerico e alfanumerico

Re: Qlikview converting Text to Number and removing leading zeros

e la risposta è sempre la stessa

Capisco (è capitato anche a me) che la prima volta tu rimanga perplesso 

Ciao