Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/10/2012, 02:29
Avatar de triqui
triqui
 
Fecha de Ingreso: diciembre-2008
Ubicación: Zaragoza(España)
Mensajes: 624
Antigüedad: 16 años
Puntos: 31
Respuesta: Consulta entre dos tablas

Hola gnzsoloyo, gracias por tu respuesta.

La condición where no le hagamos mucho caso, se la quito, la sql quedaría así:

Código SQL:
Ver original
  1. SELECT a.sk_dim_time,MAX(b.trqt_acum) FROM fact_cost A
  2.    LEFT JOIN FACT_STOCK_ACUM_TEMP_MONTH B
  3.    ON A.sk_dim_time = B.sk_dim_time
  4.   GROUP BY a.sk_dim_time
  5.   ORDER BY a.sk_dim_time;


En fact cost tengo una sola columna (sk_dim_time), que es una fecha y me devuelve.

20110601
20110701
20110801
20110901
20111001
20111101
20111201
20120101
20120201
20120301

Por otro lado tengo otra tabla FACT_STOCK_ACUM_TEMP_MONTH que tiene otra fecha(que utilizaremos para unir) y una cantidad(trqt_acum).

sk_dim_time trqt_acum
20111001 20700
20111201 8400


Al hacer el cruce con el left join me sale lo siguiente:

sk_dim_time trqt_acum
20110601 NULL
20110701 NULL
20110801 NULL
20110901 NULL
20111001 20700
20111101 NULL
20111201 8400
20120101 NULL
20120201 NULL
20120301 NULL

Realmente es un resultado esperado, Pero para lograr lo que quiero hacer, estoy probando con este tipo de sql

select a.sk_dim_time,
Sum(b.trqt_acum) over (order by a.sk_dim_time)
From fact_cost A
LEFT join FACT_STOCK_ACUM_TEMP_MONTH B
on A.sk_dim_time = B.sk_dim_time
order by a.sk_dim_time;


Este es el resultado que me ofrece

sk_dim_time trqt_acum
20110601 NULL
20110701 NULL
20110801 NULL
20110901 NULL
20111001 20700
20111101 20700
20111201 29100
20120101 29100
20120201 29100
20120301 29100

Pero claro lo que he marcado el rojo me hace una suma acumulada, donde pone 29100 debería salir 8400.

No se si me explicado bien pero el resultado debería de ser:


20110601 NULL
20110701 NULL
20110801 NULL
20110901 NULL
20111001 20700 <-- El valor natural
20111101 20700 <-- Cuando es nulo, el ultimo valor
20111201 8400 <-- El valor natural
20120101 8400 <-- Cuando es nulo, el ultimo valor
20120201 8400 <-- Cuando es nulo, el ultimo valor
20120301 8400 <-- Cuando es nulo, el ultimo valor
__________________
La nueva red social de quinielas quiniela resultados
Cazaresultados Futbol base en directo

Última edición por triqui; 01/10/2012 a las 02:40