[it-users] funzione LPAD (e RPAD) in LibreOffice Base

classic Classic list List threaded Threaded
2 messages Options
ML Roberto Ravani ML Roberto Ravani
Reply | Threaded
Open this post in threaded view
|

[it-users] funzione LPAD (e RPAD) in LibreOffice Base


ciao,
grazie della risposta.
Se è come dici dovrebbe funzionare anche una semplice Lpad ('1', 2, '0') ma il messaggio di errore è sempre
"accesso negato", "Codice di errore: -33"

Inizio a pensare che LPAD (e RPAD) non siano supportate in LibreOffice Base 3.4.2. e che il
motore sottostante (HSQL) sia una versione inferiore rispetto alla 2.2 cioè quella delle istruzioni che ho scaricato.

Qualcuno  ha mai utilizzato LPAD in Libò ? o conosce una funzione che permetta di far precedere con una stringa (o numero) il
contenuto di un campo se la sua lunghezza è inferiore a x ?
   Roberto


               
                       


  Re: [it-users] funzione LPAD (e RPAD) in LibreOffice Base

valerio
Thu, 10 Nov 2011 05:53:57

ciao,

non sono sicuro, ma penso che la funzione lpad richieda una stringa, non
un numero: quindi puoi trasformare in stringe il numero, oppure vedere
se esiste una funzione simile per i numeri.

valerio




Il 09/11/2011 22:33, ML Roberto Ravani ha scritto:


Buongiorno a tutti,
sono un appasionato di database e vorrei abbandonare Access.
Leggendo la documentazione di LibreOffice Base sono arrivato alla Hyper
SQL Guide ( http://hsqldb.org/web/hsqlDocsFrame.html). Li' ho trovato la
funzione LPAD ma non riesco ad utilizzarla.
In particolare vorrei, all'interno di una Query o di una Vista, creare
un campo calcolato (chiamiamolo 'mese') che mostri il mese relativo alla
data inserita nel campo 'Data_operazione'.  Utilizzando la funzione
MONTH riesco ad ottenere il numero cercato.
in pratica, la versione SQL della query è:

SELECT "Data_operazione", MONTH( "Data_operazione" ) AS "mese" FROM
"movim_banche"

Vorrei però che il campo "mese" indichi sempre un numero di due cifre e
quindi, per i mesi inferiori a 10 dovrebbe iniziare con un zero.

Se non ho capito male povrei utilizzare la funzione LPAD nel seguente
modo:    LPAD( campo, 2, '0')    però finora riesco ad ottenere solo
messaggi come il seguente:


Non è stato possibile caricare i contenuti.
Stato SQL: S1000
Codice di errore: -33
Accesso negato:
LPAD in statement [SELECT "Data_operazione", LPAD( MONTH(
"Data_operazione" ), 2, '0' ) AS "mese" FROM "movim_banche"]

Qualcuno può darmi una dritta.
Grazie in anticipo

Roberto






--
Unsubscribe instructions: E-mail to [hidden email]
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/it/users/
All messages sent to this list will be publicly archived and cannot be deleted

ML Roberto Ravani ML Roberto Ravani
Reply | Threaded
Open this post in threaded view
|

[it-users] [RISOLTO] Re: funzione LPAD (e RPAD) in LibreOffice Base

ciao,
ho risolto. spero sia utile anche ad altri appasionati di Base.
in pratica lo stesso effetto di LPAD si ottiene con CASEWHEN
(corrisponde a IIF di MSAccess).
la condizione da impostare è: se il mese contenuto nel campo
data_operazione è inferiore a 10 fai apparire uno zero altrimenti nulla
e si ottiene cosi':

CASEWHEN( MONTH( "data_operazione" ) < 10, '0', '' )
l'ultimo parametro è il cosidetto blank cioè nulla tra due apostofi.

il tutto va fatto seguire da :
MONTH( "data_operazione" )

per unire le due funzioni che restituiscono ciascuna una stringa si
possono usare i due "pipe": ||
(corrisponde alla & di MS Access).

quindi la formula completa è:

CASEWHEN( MONTH( "data_operazione" ) < 10, '0', '' ) || MONTH(
"data_operazione" )

ciao


Il 10/11/2011 23:20, ML Roberto Ravani ha scritto:

> ciao,
> grazie della risposta.
> Se è come dici dovrebbe funzionare anche una semplice Lpad ('1', 2, '0') ma il messaggio di errore è sempre
> "accesso negato", "Codice di errore: -33"
>
> Inizio a pensare che LPAD (e RPAD) non siano supportate in LibreOffice Base 3.4.2. e che il
> motore sottostante (HSQL) sia una versione inferiore rispetto alla 2.2 cioè quella delle istruzioni che ho scaricato.
>
> Qualcuno  ha mai utilizzato LPAD in Libò ? o conosce una funzione che permetta di far precedere con una stringa (o numero) il
> contenuto di un campo se la sua lunghezza è inferiore a x ?
>    Roberto
>
>
>
>
>
>
>   Re: [it-users] funzione LPAD (e RPAD) in LibreOffice Base
>
> valerio
> Thu, 10 Nov 2011 05:53:57
> ciao,
> non sono sicuro, ma penso che la funzione lpad richieda una stringa,
> non un numero: quindi puoi trasformare in stringe il numero, oppure
> vedere se esiste una funzione simile per i numeri.
> valerio
>
>
>
> Il 09/11/2011 22:33, ML Roberto Ravani ha scritto:
>
> Buongiorno a tutti,
> sono un appasionato di database e vorrei abbandonare Access.
> Leggendo la documentazione di LibreOffice Base sono arrivato alla
> Hyper SQL Guide ( http://hsqldb.org/web/hsqlDocsFrame.html). Li' ho
> trovato la funzione LPAD ma non riesco ad utilizzarla.
> In particolare vorrei, all'interno di una Query o di una Vista, creare
> un campo calcolato (chiamiamolo 'mese') che mostri il mese relativo
> alla data inserita nel campo 'Data_operazione'.  Utilizzando la
> funzione MONTH riesco ad ottenere il numero cercato.
> in pratica, la versione SQL della query è:
>
> SELECT "Data_operazione", MONTH( "Data_operazione" ) AS "mese" FROM
> "movim_banche"
>
> Vorrei però che il campo "mese" indichi sempre un numero di due cifre
> e quindi, per i mesi inferiori a 10 dovrebbe iniziare con un zero.
>
> Se non ho capito male povrei utilizzare la funzione LPAD nel seguente
> modo:    LPAD( campo, 2, '0')    però finora riesco ad ottenere solo
> messaggi come il seguente:
>
>
> Non è stato possibile caricare i contenuti.
> Stato SQL: S1000
> Codice di errore: -33
> Accesso negato:
> LPAD in statement [SELECT "Data_operazione", LPAD( MONTH(
> "Data_operazione" ), 2, '0' ) AS "mese" FROM "movim_banche"]
>
> Qualcuno può darmi una dritta.
> Grazie in anticipo
>
> Roberto
>
>
>
>
>


--
Unsubscribe instructions: E-mail to [hidden email]
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/it/users/
All messages sent to this list will be publicly archived and cannot be deleted