我有两张这样的桌子
我想在这里从 Table1 插入到 Table2。这就是我想要的。
取 MOU = 10。它在同一行中有 num1 和 hour1。我想将它插入到与 num1 相同行和与 hour1 相同列的单元格中。
我怎么能那样做?
免责声明:我在这里不提供任何代码,因为我不确定如何编写此查询。我当然知道要写一个简单的更新。我是一个 teracota 新手。
我有两张这样的桌子
我想在这里从 Table1 插入到 Table2。这就是我想要的。
取 MOU = 10。它在同一行中有 num1 和 hour1。我想将它插入到与 num1 相同行和与 hour1 相同列的单元格中。
我怎么能那样做?
免责声明:我在这里不提供任何代码,因为我不确定如何编写此查询。我当然知道要写一个简单的更新。我是一个 teracota 新手。
这行得通。
UPDATE a
FROM table2 a, table1 b
SET hour1=b.mou
WHERE a.access_method_id=b.access_method_id
AND hour='hour1'
每个小时都做同样的事情。不是很优雅。但这就是我所能得到的。
这是一些应该完成工作的通用 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
试试这个!
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;