2010-02-12 4 views
0

я извлекаются следующие данные, используя SQL запрос из MySQLКак изменить следующие данные с помощью php?

TOTAL COMPUTER  DATE  GROUP 
----------------------------------------------- 
48  LAPTOP2  2009-08-19  1 
77  LAPTOP2  2009-08-20  1 
0  LAPTOP2  2009-08-21  1 
15  LAPTOP1  2009-08-19  1 
25  MAIN  2009-08-23  1 
25  LAP3  2009-08-18  2 
3  LAP3  2009-08-19  2 
55  LAP3  2009-08-20  2 

Я хотел бы изменить данные, как с помощью PHP

group computer 2009-08-18 2009-08-19 2009-08-20 2009-08-21 2009-08-22 2009-08-23 
------------------------------------------------------------------------------------------------ 
1  LAPTOP2  0   48   77   0   0   0 
1  LAPTOP1  0   15   0   0   0   0 
1  MAIN                 25 
2  LAP3   25   3   55   0   0   0 
+2

Вы просто переформатируете данные или суммируете итоговые суммы? Ваш вопрос непонятен. – artlung

+0

Да, я собираю итоговые суммы из mysql. первый из результатов mysql второй, результат получается –

ответ

1

использовать следующий запрос для поворота данных:

SELECT t.group, 
     t.computer, 
     MAX(CASE WHEN t.date = '2009-08-18' THEN t.total ELSE 0 END) AS '2009-08-18', 
     MAX(CASE WHEN t.date = '2009-08-19' THEN t.total ELSE 0 END) AS '2009-08-19', 
     MAX(CASE WHEN t.date = '2009-08-20' THEN t.total ELSE 0 END) AS '2009-08-20' 
     --, etc... 
    FROM TABLE t 
GROUP BY t.group, t.computer 

Ваши варианты - либо определить каждый столбец для данных, которые вы поворачиваете, либо вы можете использовать MySQL's Prepared Statement syntax для динамического создания этих столбцов.

Я чувствую необходимость указать, что ваш пример не соответствует - для LAPTOP2, то есть ноль в качестве значения для 2009-08-18, но значение main для этого является пустым. Также нет записи для этой даты. Если вы хотите, чтобы они отображались как blank/etc, измените ELSE 0 END на ELSE NULL END в операциях CASE.

+0

Затем вы можете перебирать строки в PHP –

+0

спасибо за ваш ответ, есть ли какой-нибудь пример синтаксиса динамического столбца –

+0

@Suriyan Suresh: Да, см. ссылку на MySQL Prepared Документация документации: http://dev.mysql.com/tech-resources/articles/4.1/prepared-statements.html –

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