У меня есть список предметов, который обновляется ежедневно, и каждый предмет попадает в один из четырех ценовых диапазонов.
Следующий запрос извлекает количество элементов в каждой ценовой полосе по дате, но помещает каждую комбинацию полосы / даты в отдельную строку.
SELECT PB.band, Count(L.ID) as Count
FROM ListItem L
join PriceBand PB on L.price >= PB.loprice and L.price <= PB.hiprice
Where ListID = 1 and ranking <= 100 and band >= 1 and band <= 4
Group by date, PB.band
order by date asc, band asc
Результирующий набор выглядит следующим образом(два дня использовались для иллюстрации):
date band Count
2010-12-08 1 20
2010-12-08 2 17
2010-12-08 3 32
2010-12-08 4 26
2010-12-09 1 19
2010-12-09 2 16
2010-12-09 3 33
2010-12-09 4 27
Хотя я могу повторить эту процедуру, чтобы создать таблицу, которую я действительно хочу, есть ли разумный способ написать запрос для возврата данных в двумерной формеследующим образом:
date band1 band2 band2 band3
2010-12-08 20 17 32 26
2010-12-09 19 16 33 27
Спасибо всем.