2013-06-04 4 views
0

Net, MYSQL web Application. Мы создали хранимую процедуру, которая будет возвращать таблицу, но теперь мы хотим изменить структуру этой процедуры для целей отображения. Итак, как сделать Mysql хранимые процедуры TempTable результатом в формате follwing? Строки преобразуются в столбцы.Как показать строку как столбец в результате результата tempTable MYSQL

enter image description here

Phoenix Solution Выход:

enter image description here

+0

Есть ли какие-либо другие столбцы в таблице темп? – peterm

+0

Да, я дал столбцам TempTable. CREATE TEMPORARY TABLE TempTable (текущий varchar (1000), один varchar (1000), тридцать один varchar (1000), sixtyOne varchar (1000), девяносто varchar (1000)) TYPE = HEAP; –

ответ

1

Попробуйте

SELECT 
     SUM(CASE WHEN Agedreceivable='Current' THEN AgedreceivableAmt END) Current, 
     SUM(CASE WHEN Agedreceivable='1-30' THEN AgedreceivableAmt END) '1-30', 
     SUM(CASE WHEN Agedreceivable='31-60' THEN AgedreceivableAmt END) '31-60', 
     SUM(CASE WHEN Agedreceivable='61-90' THEN AgedreceivableAmt END) '61-90', 
     SUM(CASE WHEN Agedreceivable='>90' THEN AgedreceivableAmt END) '>90' 
    FROM 
(
    SELECT @n := @n + 1 rownum, agedreceivable, agedreceivableamt 
    FROM temp, (SELECT @n := 0) z 
) y 
GROUP BY FLOOR((rownum - 1)/5) 

Выход:

| CURRENT | 1-30 | 31-60 | 61-90 | >90 | 
---------------------------------------- 
|  0 | 0 |  0 |  0 | 0 | 
| 12993 | 0 |  0 |  0 | 0 | 

Здесь SQLFiddle демо

+0

хорошее решение. :) – ankurtr

+0

@ConstantLearner Добро пожаловать :) – peterm

1

Попробуйте SQL

select max((CASE WHEN Agedreceivable='Current' then AgedeceivableAmt ELSE 0 END)) as Current, 
max((CASE WHEN Agedreceivable='1-30' then AgedeceivableAmt ELSE 0 END)) as '1-30', 
max((CASE WHEN Agedreceivable='31-60' then AgedeceivableAmt ELSE 0 END)) as '31-60', 
max((CASE WHEN Agedreceivable='61-90' then AgedeceivableAmt ELSE 0 END)) as '61-90', 
max((CASE WHEN Agedreceivable='>90' then AgedeceivableAmt ELSE 0 END)) as '>90' 
from yourtable; 

Как вы не упомянули ваши данные Ме- ханизма таблицы я хотел бы предложить, чтобы сгруппировать эти записи по некоторым соответствующее поле, вы получите желаемый результат, иначе вы сможете следовать решению @ peterm.

Образец Fiddle FIDDLE

+0

Phoenix Я пробовал ваше решение, но он дает мне 10 строк, так как мне нужно всего 2 строки на выходе. –

+0

@Phoenix: Я добавил вывод в EDIT –

+0

@ConstantLearner: просмотрите обновленный ответ. – ankurtr

Смежные вопросы