Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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?
Mi sembra strano, QV dovrebbe vederli come codici differenti, inviami il tuo script ...
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
];
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 ...
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?
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 ...
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
"
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.
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