3

私はこのような2つのテーブルを持っています

ここに画像の説明を入力してください

ここに表1から表2に挿入したいと思います。これが私が望む方法です。

MOU=10とします。同じ行にnum1とhour1があります。num1と同じ行、hour1と同じ列のセルに挿入したいと思います。

どうすればそれができますか?

免責事項:このクエリの記述方法がわからないため、ここではコードを提供していません。私は確かに簡単な更新を書くことを知っています。私はテラコッタの初心者です。

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 に答える