Forums Últimos mensajes - Powered by IBM
 

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.
 

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.


Preguntas similares