次のテーブルがあるとします。
+---------+------+-------------+-----+-------+--------+
| invoice | item | description | qty | price | amount |
+---------+------+-------------+-----+-------+--------+
| 1234 | L | labour | 1 | 50 | 50 |
| 1234 | P | parts | 2 | 100 | 200 |
| 9865 | L | labour | 1 | 25 | 25 |
| 9865 | P | parts | 1 | 25 | 25 |
| 5555 | P | parts | 2 | 100 | 200 |
+---------+------+-------------+-----+-------+--------+
各請求書番号が 1 行のみになるように、一意の請求書番号ごとに 2 行を列に転置する選択クエリが必要です。
したがって、上記の例では、次のことが期待されます。
+---------+-------+--------------+------+--------+---------+-------+--------------+------+--------+---------+
| invoice | item1 | description1 | qty1 | price1 | amount1 | item2 | description2 | qty2 | price2 | amount2 |
+---------+-------+--------------+------+--------+---------+-------+--------------+------+--------+---------+
| 1234 | L | labour | 1 | 50 | 50 | P | parts | 2 | 100 | 200 |
| 9865 | L | labour | 1 | 25 | 25 | P | parts | 1 | 25 | 25 |
| 5555 | P | parts | 2 | 100 | 200 | NULL | NULL | NULL | NULL | NULL |
+---------+-------+--------------+------+--------+---------+-------+--------------+------+--------+---------+
注: 項目に基づく動的ではなく、静的/事前定義された数の列を探しています。