Обновление table1 на основе значения из таблицы 2 в teradata - PullRequest
3 голосов
/ 12 августа 2011

У меня есть две таблицы, подобные этой

enter image description here

Я хотел бы вставить сюда таблицу от Table1 до Table2.Вот как я этого хочу.

Возьми MOU = 10. У него есть num1 и hour1 в одной строке.Я хотел бы вставить его в ячейку, которая находится в той же строке, что и у num1, и в том же столбце, что и в часе.предлагая любой код здесь, потому что я не уверен, как написать этот запрос.Я уверен, что знаю, чтобы написать простое обновление.Я теракота новичок.

Ответы [ 3 ]

2 голосов
/ 24 августа 2011

Это сработало.

UPDATE a
FROM table2 a, table1 b
SET hour1=b.mou
WHERE a.access_method_id=b.access_method_id
AND hour='hour1'

Делал то же самое для каждого часа. Не очень элегантно Но это все, что я мог получить.

2 голосов
/ 12 августа 2011

Вот некоторый общий SQL, который должен выполнить работу.

insert into table2(access_method_id, hour1, hour2, ...)
select 
  access_method_id, 
  sum(case when hour='HOUR1' then MOU else 0 end) as hour1,
  sum(case when hour='HOUR2' then MOU else 0 end) as hour2,
  ...etc
from
  table1
group by
  access_method_id
0 голосов
/ 07 мая 2014

попробуйте это!

update table2 t2
from (select 
  access_method_id, 
  sum(case when hour='HOUR1' then MOU else 0 end) as hour1,
  sum(case when hour='HOUR2' then MOU else 0 end) as hour2,
  ...etc
from
  table1) t1
set
t2.hour1=t1.hour1,
t2.hour2=t1.hour2,
t2.hour3=t1.hour3,
...etc
where t2.access_method_id=t1.access_method_id;
...