Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


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 users+help@it.libreoffice.org
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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.