2014-10-28 2 views
0

я должен повернуть следующие данные:DB2 Преобразование строк в столбце

От:

SELECT NAMES, SUM(AMT1), SUM(AMT2) FROM MY_TABLE GROUP BY NAMES 

NAMES   AMT1  AMT2 
Mike   6000  5000 
Jerry   1000  10 
King   500   2000 
Mary   400   5000 
Harry   100   500 

в

Names Mike Jerry King Mary Harry 
AMT1 6000 1000 500 400 100 
AMT2 5000 10  2000 5000 500 

Можно ли это реализовать с помощью запросов на DB2? Обратите внимание, что поле NAME является динамическим, и на моей таблице может быть до 25 строк. Спасибо за помощь.

+0

Довольно стандартный [сводный запрос] (http://stackoverflow.com/questions/3040680/side-by-side-comparison-of-data-by-year-in-sql), в котором работают большинство стандартных трюков , Что вы используете для _display_ этой информации? Возможно, вам удастся просто сделать это в отчетах. Обратите внимание, что, если у вас нет дополнительных запросов, требующих информации в этом формате, этот тип стержня на самом деле является проблемой отображения и может не принадлежать запросу базы данных. –

ответ

0

Я не уверен, есть ли уже общее решение этой проблемы. Тем не менее, можно использовать DBMS_SQL для обработки метаданных, а затем выполнить поворот.

Я разработал свою собственную родовую версию этого поворота, и он будет опубликован в GitHub: https://github.com/angoca/db2tools

Он принимает существующую таблицу (сеанс или постоянный) и создает таблицу сеанса со строкой в ​​виде столбцов, и наоборот.