3

我有两张这样的桌子

在此处输入图像描述

我想在这里从 Table1 插入到 Table2。这就是我想要的。

取 MOU = 10。它在同一行中有 num1 和 hour1。我想将它插入到与 num1 相同行和与 hour1 相同列的单元格中。

我怎么能那样做?

免责声明:我在这里不提供任何代码,因为我不确定如何编写此查询。我当然知道要写一个简单的更新。我是一个 teracota 新手。

4

3 回答 3

3

这行得通。

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

每个小时都做同样的事情。不是很优雅。但这就是我所能得到的。

于 2011-08-24T07:19:41.157 回答
2

这是一些应该完成工作的通用 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
于 2011-08-12T12:25:48.910 回答
-1

试试这个!

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;
于 2014-05-07T07:19:52.990 回答