Hola Lista

Lo genere con la siguiente sentencia:

SELECT a.key,a.hora max(b.hora) AS hora_anterior
FROM
(VALUES (1,'21:15'::time),(1,'20:17'::time),(1,'22:15'::time)) AS
a(key,hora)
JOIN
(VALUES
(1,'20:15'::time),(1,'20:16'::time),(1,'21:16'::time),(1,'22:16'::time),(1,'23:16'::time))
AS b(key,hora) ON  a.key=b.key AND a.hora>b.hora
GROUP BY 1,2
ORDER BY  1,2




El 14 de junio de 2016, 15:03, Maximiliano Riffo<maxrif...@gmail.com>
escribió:

> Hola estimados, tengo una consulta. Lo que sucede es que tengo dos tablas
> ambas tienen un key y una fecha, entonces lo que debo hacer es traer la
> fecha mas cercana de la otra tabla
> Ejemplo
> tabla b
> key hora
> 1 20:15
> 1 20:16
> 1 21:16
> 1 22:16
> 1 23:16
> tabla a
> key hora
> 1 21:15
> 1 20:17
> 1 22:15
> resultado
> a.key a.hora b.hora anterior
> 1 21:45 21:16
> 1 20:30 20:16
> 1 22:18 22:16
> Para cada registro de la tabla a obtengo la fecha mas cercana anterior de
> la tabla b y que tengan el mismo key.
> Estoy tratando con windows funtions, pero hay algo en lo que fallo. ¿ Esta
> bien que las utilice o existe algo mejor ?.
>
> Las tablas tiene aproximadamente 1 millon de registros cada una.
> Si tuvieran alguna sugerencia.
>
> Saludos y gracias
>
> --
> Max
>
>


-- 
Cordialmente,

Ing. Hellmuth I. Vargas S.
Esp. Telemática y Negocios por Internet
Oracle Database 10g Administrator Certified Associate
EnterpriseDB Certified PostgreSQL 9.3 Associate

Responder a