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 originalSELECT a.sk_dim_time,MAX(b.trqt_acum) FROM fact_cost A
LEFT JOIN FACT_STOCK_ACUM_TEMP_MONTH B
ON A.sk_dim_time = B.sk_dim_time
GROUP BY a.sk_dim_time
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