Есть таблица с закзами.
Структура таблицы:
idzakaza | zakazali | statuszakaza | summa | datazakaza | IP |
1 | 1 | 2 | 123 | 2014-12-12 15:12:23 | 5.5.5.5 |
2 | 0 | 0 | 444 | 2014-12-12 16:12:23 | 5.5.5.6 |
3 | 1 | 2 | 555 | 2014-13-12 17:12:23 | 5.5.5.7 |
4 | 1 | 1 | 290 | 2014-13-12 18:12:23 | 5.5.5.8 |
5 | 0 | 0 | 870 | 2014-13-12 19:12:23 | 5.5.5.9 |
Если zakazali=0, то statuszakaza всегда=0 (дело до оформления заказа не дошло)
Если zakazali=1, то statuszakaza м.б. равен 1 (отказ), 2(в обработке), 3(обработан)
Задача отобразить в табличном виде данные о заказах с разбивкой по дням за выбранный период (WHERE datazakaza BETWEEN ......) в следующем объеме:
Дата | Уник.посетителей | Всего посетителей | всего заказов (кол-во) | отказ(кол-во) | в обработке (кол-во) | обработан (кол-во)| всего заказов (кол-во) | отказ(сумма) | в обработке (сумма) | обработан (сумма) |
Всего.посетителей - общее количество записей в выборке (включая записи, где zakazalo=0);
Уник.посетителей - кол-во записей с уникальными IP (включая записи, где zakazalo=0);
Остальные колонки только по тем записям, где zakazali=1
Через несколько запросов сделать возможно, но сильно нагружает сервер.
Через один запрос смог выбрать только количество Уник.посетителей, Всего посетителей и кол-во заказов. Суммы не получается...
Плюс смог выбрать только итоги (за весь период).
Возможно ли решить данную проблему одним (максимум двумя запросами)?
|