Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как получить кросс-таблицу / 8 сообщений из 8, страница 1 из 1
13.04.2004, 13:39
    #32479060
AlexPretov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить кросс-таблицу
может кто подскажет, либо SQL- либо php- скрипт для получения кросстаблицы.

Заранее благодарю.

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
13.04.2004, 14:55
    #32479257
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить кросс-таблицу
А поподробнее что вы вкладываете в понятие КРОССТАБЛИЦА ?

Код: plaintext
1.
SELECT a.*, b.* FROM Table_A a, Table_B b


. http://sql.ru/]mahoune
...
Рейтинг: 0 / 0
13.04.2004, 14:58
    #32479268
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить кросс-таблицу
наверно типа этого\r
\r
*** Ухожу с ПТ ***
...
Рейтинг: 0 / 0
13.04.2004, 15:23
    #32479331
AlexPretov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить кросс-таблицу
на интуитивном уровне -- это таблица, колонки которой предтавляют собой значения некоторой категори, например меясца, городов, женских имен.... Типичная кросстаблица -- таблица умножения

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

отсюда главная особеннсоть кросстаблц -- кол-во столбцов зависит от данных, т.е. он заранее не известен.

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
13.04.2004, 15:57
    #32479425
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить кросс-таблицу
Это, кстати, уже тут обсудалось!
Решается при помощи генерации скрипта на лету для определения необходимых столбцов...

Сначала выбираешь необходимые сезоны (исходя из твоего примера) на этих данных создаешь скрипт и выполняешь его.

Для каждой конкретной реализации скрипт нужен уникальный - универсального наверное нет! Да он и не сложный совсем

. http://sql.ru/]mahoune
...
Рейтинг: 0 / 0
13.04.2004, 16:17
    #32479479
Marat_L
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить кросс-таблицу
Код: plaintext
1.
2.
3.
4.
5.
$res=mysql_query( "SELECT сезон FROM таблица" );
$field_clause='';
for ($j= 1 ; $j<=mysql_num_rows($res) && $tmp=mysql_fetch_array($res); $j++) {
    $field_clause=  "$field_clause,sum(if(сезон='$tmp[сезон]',колво,0 ))";
}
$query= "SELECT магазин $field_clause FROM таблица GROUP BY 1  ";


Типа такого сойдет?

Жизнь коротка - потерпи немного :)
...
Рейтинг: 0 / 0
13.04.2004, 16:48
    #32479600
AlexPretov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить кросс-таблицу
идея понятна. спасибо.

одно соображение: скорее всего лучше сделать сначала агрегацию, а потом "разворачивать" таблицу.

________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
16.04.2004, 11:19
    #32483926
AlexPretov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как получить кросс-таблицу
Спасибочки всем, кто отозвался. Вот на главном сайте порылся, нашел, может кому тоже интересным покажется:
http://dev.mysql.com/tech-resources/articles/wizard/index.html
________________
С уважением, Alex Pretov
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как получить кросс-таблицу / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]