SQL - конвертировать данные в дату / источник / значение "сетка" - PullRequest
0 голосов
/ 29 апреля 2009

У меня есть данные в базе данных MYSQL, которые выглядят так:

Project    Date         Time
A          2009-01-01   15
A          2009-01-02   10
B          2009-01-02   30
A          2009-01-09   15
C          2009-01-07   5

Я хотел бы получить выходные данные из этих данных следующим образом:

Date         Project A Time     Project B Time    Project C Time
2009-01-01   15                 0                 0
2009-01-02   10                 30                0
2009-01-07   15                 0                 5 

Можно ли это сделать с помощью SQL-запроса или мне нужно написать внешний скрипт для его прохождения через БД и организации вывода?

(Кроме того, если у кого-то есть лучшее предложение для строки темы, дайте мне знать, и я отредактирую вопрос; я не уверен в правильных терминах для описания текущего и желаемого форматов, что делает поиск этой информации трудно)

Ответы [ 3 ]

1 голос
/ 29 апреля 2009

Я считаю, что это называется сводной таблицей. Просто Google для этого.

1 голос
/ 12 июня 2009

Я искал что-то вроде этого и нашел хранимую процедуру MySQL, которая прекрасно работает:

http://forums.mysql.com/read.php?98,7000,250306#msg-250306

Результат, который вы ищете, можно получить с помощью следующего простого вызова:

вызов сводного мастера ('date', 'project', 'time', 'from_table', 'where_clause')

1 голос
/ 29 апреля 2009

Вы ищете поддержку сводных / кросс-таблиц. Вот хорошая ссылка.

http://en.wikibooks.org/wiki/MySQL/Pivot_table

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...