PIVOT をサポートする DB を使用する場合は、それを使用する必要があります。Oracle のコード例を次に示します。
CREATE TABLE Consumption (
DocDate DATE,
ItemCode VARCHAR2(10),
Quantity NUMBER
);
INSERT INTO Consumption VALUES(to_date('2009-01-01', 'YYYY-MM-DD'), 'A', 5);
INSERT INTO Consumption VALUES(to_date('2009-02-01', 'YYYY-MM-DD'), 'A', 6);
INSERT INTO Consumption VALUES(to_date('2009-01-01', 'YYYY-MM-DD'), 'B', 5);
SELECT * FROM Consumption
PIVOT(
sum(Quantity)
FOR DocDate IN (
to_date('2009-01-01', 'YYYY-MM-DD') AS Jan09Total,
to_date('2009-02-01', 'YYYY-MM-DD') AS Feb09Total
)
);
ロビンが指摘したように、列が異なる場合は、正しい列を使用してそのようなクエリを動的に生成する必要があります。