-3

私はこれらの2つのテーブルを持っています:

+-------------+--------+      +----+-------+
| employee_id | val_id |      | id | value |
+-------------+--------+      +----+-------+
|         123 |      1 |      |  1 |     A |
+-------------+--------+      +----+-------+
|         123 |      2 |      |  2 |     B |
+-------------+--------+      +----+-------+
|         123 |      3 |      |  3 |     C |
+-------------+--------+      +----+-------+

期待される結果

+-------------+-------+-------+-------+ 
| employee_id | val_1 | val_2 | val_3 | ...
+-------------+-------+-------+-------+ 
|         123 |     A |     B |     C |

私を手伝ってくれますか

4

2 に答える 2

0

join と pivot を使用します。これにより、必要な結果が得られます

SELECT * FROM(
SELECT employeeID,'val_'+CAST(a.val_id AS VARCHAR(2)) val_id ,value 
FROM table1 a INNER JOIN table2 b ON a.val_id=b.val_id
) AS ss
PIVOT
(
    MAX(value)
    FOR [val_id] IN ([val_1],[val_2],[val_3])
)AS pivott
于 2013-07-16T08:48:34.847 に答える
0
  1. 最初のテーブルに値列を作成する
  2. UPDATE 句による UPDATE 'value' 列 (値の選択に subselect を使用できます)
  3. DROP val_id 列
  4. DROP 2 番目のテーブル

テーブルの大きさは?

于 2013-06-18T14:00:51.360 に答える