Tengo una tabla de la siguiente maneraSQL: Usando Top 1 en consulta UNION con la Orden Por
Rate Effective_Date
---- --------------
5.6 02/02/2009
5.8 05/01/2009
5.4 06/01/2009
5.8 12/01/2009
6.0 03/15/2009
supone que tengo que encontrar las tasas de todos los que son eficaces para la fecha actual y después de ella. Así que para obtener la tasa efectiva actual, yo uso
SELECT TOP 1 * from table
where effective_date < '05/05/2009'
order by effective date desc
de las tasas después de la fecha actual la consulta es
SELECT * from table
where effective_date > '05/05/2009'
combinar estas dos resultado yo uso un sindicato como
SELECT TOP 1 * from table
where effective_date < '05/05/2009'
order by effective date desc
UNION
SELECT * from table
where effective_date > '05/05/2009'
El resultado esperado es
Rate Effective Date
---- --------------
5.8 05/01/2009
5.4 06/01/2009
5.8 12/01/2009
6.0 03/15/2009
Pero conseguir el resultado real como
Rate Effective Date
---- --------------
5.6 02/02/2009
5.4 06/01/2009
5.8 12/01/2009
6.0 03/15/2009
que no tienen la menor idea de por qué sucede esto? ¿Alguna sugerencia?
No estoy seguro de que sus resultados "esperados" sean realmente los resultados que debe esperar ... 3/15/2009 es el "penúltimo" registro "más reciente anterior" antes de la fecha de búsqueda de '5/5/2009 '... solo debería obtener 3 registros en su conjunto de resultados esperados. – datacop