запрос MySQL, имея метку времени вдоль оси (т.е. в столбцах и строках) - PullRequest
1 голос
/ 10 декабря 2010

Привет, рассмотрим такую ​​таблицу alt text

Теперь мне нужен такой вывод

alt text

Это мое требованиеЯ просто дал 3 дня регистрации здесь.считают, что есть N число дат регистрации и дат действия.Как написать запрос для этого.Спасибо за помощь.

1 Ответ

0 голосов
/ 07 мая 2011

То, что вы ищете, часто называют кросс-таблицей. Вот пример, который даст желаемые результаты:

Select registrationDate
    , Sum( Case When ValidityDate = '2010-10-25' Then 1 Else 0 End ) As `2010-10-25`
    , Sum( Case When ValidityDate = '2010-10-26' Then 1 Else 0 End ) As `2010-10-26`
    , Sum( Case When ValidityDate = '2010-10-27' Then 1 Else 0 End ) As `2010-10-27`
From MyTable
Group By registrationDate

Если вы хотите динамически строить столбцы, вы ищете динамическую кросс-таблицу. Язык SQL в целом не предназначен для динамической генерации столбцов, и поэтому в MySQL это невозможно сделать без использования динамического SQL. Вместо этого вам следует создать этот запрос на среднем уровне или в механизме отчетов.

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