Я пытаюсь выполнить вставку в таблицу2 на основе выбора из таблицы1, но не могу получить правильный синтаксис. Имена столбцов из таблицы 1 будут управлять значением, вставляемым в столбец PD_NO в таблице 2, как показано в примере ниже. Может кто-нибудь помочь с этим?
Таблица 1:
(1) (2) (3) (4) (5) (6)
| SEQ | PD_01 | PD_02 | PD_03 | PD_04 | PD_05 | PD_06 |
|-----+-------+-------+-------+-------+-------+-------|
| 632 | 10000 | 0 | 500 | 0 | 20000 | 0 |
Таблица 2:
| SEQ | PD_NO | AMT |
|-----+-------+-------|
| 632 | 1 | 10000 |
|-----+-------+-------|
| 632 | 3 | 500 |
|-----+-------+-------|
| 632 | 5 | 20000 |
|-----+-------+-------|
Я знаю, работаю ли я в другом направлении (вставляя содержимое таблицы2 в таблицу1), я могу сделать что-то вроде следующего:
INSERT INTO table1
SELECT
seq,
SUM (CASE WHEN pd_no = 1 THEN amt ELSE 0 END) p01_amt,
SUM (CASE WHEN pd_no = 2 THEN amt ELSE 0 END) p02_amt,
SUM (CASE WHEN pd_no = 3 THEN amt ELSE 0 END) p03_amt,
SUM (CASE WHEN pd_no = 4 THEN amt ELSE 0 END) p04_amt,
SUM (CASE WHEN pd_no = 5 THEN amt ELSE 0 END) p05_amt,
SUM (CASE WHEN pd_no = 6 THEN amt ELSE 0 END) p06_amt
FROM table2;
sql-server
,mysql
,oracle
и т. д. - person Bill Karwin   schedule 12.07.2013