Básicamente necesito hacer una combinación externa izquierda en 2 tablas (CarePlan y referencias) problema es que necesito la referencia más reciente Si existe, está bien si no.Servidor SQL: UNIÓN EXTERIOR IZQUIERDA con TOP 1 para seleccionar en la mayoría de una fila
que tienen estos 2 consultas 1. une a la CarePlan/mesas de Referencia - CarePlan crea duplicados si hay múltiples referencias para un careplan, o no tiene información de referencia en absoluto (externa izquierda) 2. seleccione la parte superior 1 remisión basado en la fecha, dado un CarePlanId
me gustaría combinar estos 2 así que agarrar todas las CarePlan y sus referencias si es que existe, si lo hace - tome solamente la más reciente de referencia
select * from CarePlan c //query 1
left outer join Referral r on
r.CarePlanId = c.CarePlanId
select top 1 * from Referral r //query 2
where r.CarePlanId = '1'
order by ReferralDate desc
EDITAR :
La primera consulta me da algo como esto:
CarePlanID ReferralId ReferralDate
---------- ---------- ------------
1 1 05/15/12
2 NULL NULL
1 2 05/10/12 //Old date, dont want this careplan
La segunda consulta me dará la referencia con la fecha más reciente
ReferralId ReferralDate
---------- ------------
1 05/15/12
Los datos de referencia, pueden tener 0 o más referencias que pertenecen a una Careplan
ReferralID CarePlanId Date
---------- ---------- ----
1 1 05/15/12
2 1 05/10/12
en última instancia quiero una consulta que me da CarePlan con las referencias que tienen la fecha más reciente, o nulo para referencias si es imposible tener que
así:
CarePlanId ReferralId ReferralDate
---------- ---------- ------------
1 1 05/15/12
2 NULL NULL
Gracias - Espero que esto tenga sentido
teniendo problemas para leer lo que quieres, pero creo que lo que necesitas es buscar cómo hacer un cte o una tabla derivada. – HLGEM
¿Puede mostrar los datos de muestra y los resultados deseados? Al igual que @HLGEM, no está claro dónde estás comenzando y hacia dónde quieres llegar. –
Necesita una aplicación cruzada. – usr