Перекрестная таблица

iGolubev

Guest
Перекрестная таблица

Привет всем!
такой запрос : select book, type, sum(kolvo) from rasp group by buuk, type возвращает записи:
type book sum
typ1 bookS 3
typ1 bookM 2
typ2 bookS 5

т.е. содержит повторяющиеся записи.
Никак не могу понять, как сделать такой вывод:
____ bookS bookM
typ1 3 -------- 2
typ2 5--------NULL

Собственно, нужно вывести такую таблицу в браузер.
 

SelenIT

IT-лунатик :)
Вариант 1: сборка нужного массива средствами PHP
PHP:
$arr = array();
while($f = mysql_fetch_row($result)) {
   $arr[$f[1]][$f[0]] = $f[2];
}
а потом вывод этого массива примерно в таком разрезе:
PHP:
foreach($ar as $type=>$fields) {
   ?>
<tr>
   <td><? echo $type; ?></td>
   <td><? echo isset($fields['bookS']) ? $fields['bookS'] : '-'; ?></td>
   <td><? echo isset($fields['bookM']) ? $fields['bookM'] : '-'; ?></td>
</tr>
<?
}
Вариант 2: переписать запрос с одной группировкой и двумя конструкциями вроде SUM(IF(book='bookS',1,0)). Обработка станет проще, но сам запрос наверняка станет медленнее.
 
Сверху