SQL-запрос для расширения одной строки на несколько строк для ежедневных значений - PullRequest
0 голосов
/ 26 августа 2011

Надеюсь, простой. Я нахожусь на Oracle 11G и борюсь с запросом для объединения ежедневных данных и выборочных (на основе событий) данных. Даны две таблицы:

T1:
(
object_id int,
status varchar,
effectivedate date)

T2:
(
object_id int
daytime date, 
volume number
)

Data: 
t1
(
{1, 'Producing', 1-Jan-2011}
{1, 'Shutin', 5-Jan-2011}
)

t2
(
{1, 1-Jan-2011, 2.1}
{1, 2-Jan-2011, 241.1},
{1, 3-Jan-2011, 2.5},
{1, 4-Jan-2011, 2.1},
{1, 5-Jan-2011, 2.2},
{1, 6-Jan-2011, 2.3}
)

Я бы хотел запрос, который выдает следующий вывод:

object_id status     daytime     volume
1         Producing  1-Jan-2011  2.1

1         Producing  2-Jan-2011  241.1
...

1         Shutin     5-Jan-2011  2.2
1         Shutin     6-Jan-2011  2.3

Может кто-нибудь помочь мне с SQL здесь? T2 всегда будет иметь значение для каждого дня, в то время как T1 хранит только изменения статуса.

1 Ответ

0 голосов
/ 26 августа 2011

Итак, вы хотите, чтобы daytime были только днями, когда были сделаны изменения статуса?В этом случае простое соединение сделает это:

select object_id, status, daytime, volume
from t2 left join t1
on (t1.object_id=t2.object_id and t1.effectivedate=t2.daytime)
order by 1,3;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...