[RESUELTO] Error expresión de concatenación Base LibreOffice

Discute sobre las herramientas de la base de datos
Responder
Fermarin
Mensajes: 43
Registrado: Vie Dic 09, 2016 12:01 pm

[RESUELTO] Error expresión de concatenación Base LibreOffice

Mensaje por Fermarin »

Hola nuevamente:

Tengo una consulta para un informe en el que quiero que me aparezca, por razones de poco espacio, en un mismo campo el nombre de la orquesta y separado por una coma el nombre y apellidos del director y entre paréntesis "(director)".
Para ello he creado en la tabla un campo de concatenación con esta expresión:

Código: Seleccionar todo

CASE WHEN "ORQUESTA" IS EMPTY THEN CONCAT( "ORQUESTA", ' ' ) ELSE CONCAT( "ORQUESTA", ', ' ) END + CONCAT( "NOM_DIRECTOR", ' ' ) + CONCAT( "APE_DIRECTOR", ' (director) ' )
Y funciona bien, pero hay una pega, cuando en un registro no hay orquesta, aparece "(director)" , y cuando sí hay orquesta o agrupación sin director ( quinteto, sexteto, etc.) también aparece "(director)".

Cómo puedo redactar la citada expresión para que esto no ocurra.

He probado distintos modos y, evidentemente por mi incompetencia en este tema, no he dado con ello, solo me aparecen avisos de errores de sintaxis en las sentencias.

Un saludo,
Última edición por mauricio el Lun Feb 20, 2017 5:42 pm, editado 2 veces en total.
Razón: Marcar resuelto correctamente
LibreOffice v. 5.2.4.2 con macOS Sierra 10.12.2
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Error en expresión de concatenación en Base en LibreOffi

Mensaje por RMG »

Hola,

Como digo siempre, un ejemplo nos ayuda a ayudaros. Según lo que muestras, el END no debe ir al final, y tienes en cuenta que EMPTY no es lo mismo que NULL.

Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Fermarin
Mensajes: 43
Registrado: Vie Dic 09, 2016 12:01 pm

Re: Error en expresión de concatenación en Base en LibreOffi

Mensaje por Fermarin »

Muchas gracias por la rápida atención:
Adjunto el fichero de base para comprobación.

Como explico, en la consulta "conInforme" he realizado concatenaciones en las dos últimas columnas, "Orquesta y director" y "Instrumento y solista".

en la primera me coloca (director) en los registros donde no hay datos. y el la segunda me coloca los paréntesis (), también cuando no hay datos.

Como siempre agradeceré vuestra estimada ayuda.
Adjuntos
Base de Prueba .odb.zip
(38.2 KiB) Descargado 121 veces
LibreOffice v. 5.2.4.2 con macOS Sierra 10.12.2
RMG
Mensajes: 3879
Registrado: Mar Nov 17, 2009 6:59 am
Ubicación: Valencia - España

Re: Error en expresión de concatenación en Base en LibreOffi

Mensaje por RMG »

Hola,

En la primera columna, te había indicado la posible solución, el END al final, en la segunda te falta ponerle la condición para poner los paréntesis. Mira el ejemplo.

CASE WHEN "ORQUESTA" ES VACIO THEN CONCAT( "ORQUESTA", ' ' ) ELSE CONCAT( "ORQUESTA", ', ' ) + CONCAT( "NOM_DIRECTOR", ' ' ) + CONCAT( "APE_DIRECTOR", ' (director)' ) END

CASE WHEN "InstSolista" ES VACIO THEN CONCAT( "NomSolista", ' ' ) + CONCAT( "ApeSolista", ' ' ) + CONCAT( "InstSolista", ' ' )ELSE CONCAT( "NomSolista", ' ' ) + CONCAT( "ApeSolista", ' (' ) + CONCAT( "InstSolista", ')' ) END


Saludos
OpenOffice 4.1.15 y LibreOffice 6.2.4.2 en W-10, y LibreOffice 4.1.6.2 en Open Suse 13.1(VirtualBox)
Fermarin
Mensajes: 43
Registrado: Vie Dic 09, 2016 12:01 pm

Re: Error en expresión de concatenación en Base en LibreOffi

Mensaje por Fermarin »

Muchísimas gracias, como siempre, genial.
LibreOffice v. 5.2.4.2 con macOS Sierra 10.12.2
Responder