Consulta

15/05/2008 - 19:46 por Angel g. | Informe spam
Hola,

Tengo una tabla:

TablaA (Expediente nvarchar(12), Obra nvarchar(9))

y dos vistas:

Vista1 (Expediente nvarchar(12), Total money)
Vista2 (Obra nvarchar(9), Total money)

Quisiera hacer una consulta que devolviera:

Expediente, Obra, Total (tendrá tantos registros como tenga TablaA)

pero con la condición de:

- Si existe algun registro en Vista1 cuyo expediente coincida con expediente
de TablaA, Total debe ser el de Vista1
- En caso contrario, Total debe ser el devuelto por Vista2

Supongo que deberia utilizar CASE en el momento de hacer los joins... pero
no doy con ello.

Grácias.

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
15/05/2008 - 20:53 | Informe spam
Trata:

- Si existe algun registro en Vista1 cuyo expediente coincida con expediente
de TablaA, Total debe ser el de Vista1
- En caso contrario, Total debe ser el devuelto por Vista2



select
t1.Expediente,
t1.Obra,
coalesce(v1.Total, v2.Total) as Total
from
v1
right outer join
t1
on v1.Expediente = t1.Expediente
left outer join
v2
on v2.Obra = t1.Obra
GO


AMB

"Angel g." wrote:

Hola,

Tengo una tabla:

TablaA (Expediente nvarchar(12), Obra nvarchar(9))

y dos vistas:

Vista1 (Expediente nvarchar(12), Total money)
Vista2 (Obra nvarchar(9), Total money)

Quisiera hacer una consulta que devolviera:

Expediente, Obra, Total (tendrá tantos registros como tenga TablaA)

pero con la condición de:

- Si existe algun registro en Vista1 cuyo expediente coincida con expediente
de TablaA, Total debe ser el de Vista1
- En caso contrario, Total debe ser el devuelto por Vista2

Supongo que deberia utilizar CASE en el momento de hacer los joins... pero
no doy con ello.

Grácias.



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida