Una duda en una consulta

10/11/2004 - 20:14 por manolo | Informe spam
Hola a todos,

Tengo una consulta que no me funciona bien. Esta consulta tiene dos
partes muy parecidas:

(case AlbaranesVentas.Cliente
when null then (case FacturasVentas.Cliente when null then
TicketsVentas.Cliente else FacturasVentas.Cliente end)
else AlbaranesVentas.Cliente
end) as Cliente,

(case AlbaranesVentas.FechaAlbaran
when null then (case FacturasVentas.FechaFactura when null then
TicketsVentas.FechaTicket else FacturasVentas.FechaFactura end)
else AlbaranesVentas.FechaAlbaran
end) as Fecha,


Pues bien, si pongo la primera parte, y quito la segunda la consulta va
bien, me muestra todos los registros.
Si pongo la segunda y quito la primera o pongo las dos, me va mal, me
faltan muchos registros.

Se que es un poco chungo de entender con tan poca información, pero
explicar un poco más extendido se convertiría en una biblia. Si hace falta
más info, me la pedis.

Muchas gracias y un saludo.

Preguntas similare

Leer las respuestas

#1 Liliana Sorrentino
11/11/2004 - 13:24 | Informe spam
Hola Manolo,
No es fácil ayudarte sin datos, pero solo para simplificar la sintaxis,
convertiría tu consulta de esta manera:

SELECT COALESCE ( AlbaranesVentas.Cliente, FacturasVentas.Cliente,
TicketsVentas.Cliente, 0) as Cliente,
COALESCE ( AlbaranesVentas.FechaAlbaran,
FacturasVentas.FechaFactura, TicketsVentas.FechaTicket,
FacturasVentas.FechaFactura) as Fecha,

Y para detectar lo que pueda suceder, sería bueno que nos pasaras el query
simplificado y datos de entrada, con el resultado esperado.
Saludos, Liliana.

"manolo" escribió en el mensaje
news:
Hola a todos,

Tengo una consulta que no me funciona bien. Esta consulta tiene dos
partes muy parecidas:

(case AlbaranesVentas.Cliente
when null then (case FacturasVentas.Cliente when null then
TicketsVentas.Cliente else FacturasVentas.Cliente end)
else AlbaranesVentas.Cliente
end) as Cliente,

(case AlbaranesVentas.FechaAlbaran
when null then (case FacturasVentas.FechaFactura when null then
TicketsVentas.FechaTicket else FacturasVentas.FechaFactura end)
else AlbaranesVentas.FechaAlbaran
end) as Fecha,


Pues bien, si pongo la primera parte, y quito la segunda la consulta


va
bien, me muestra todos los registros.
Si pongo la segunda y quito la primera o pongo las dos, me va mal, me
faltan muchos registros.

Se que es un poco chungo de entender con tan poca información, pero
explicar un poco más extendido se convertiría en una biblia. Si hace falta
más info, me la pedis.

Muchas gracias y un saludo.


Respuesta Responder a este mensaje
#2 manolo
11/11/2004 - 17:35 | Informe spam
Hola Liliana,

No conocía el comando COALESCE, el cual es exactamente el que necesito.
Utilizando este comando se le han quitado todos los males, debía haber
algún problema en los CASE que hacía que no funcionase bien.

Un saludo y muchas gracias.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida