|
Подскажите алгоритм, кому не жалко
| ☑ |
0
Caesar
15.04.13
✎
14:02
|
Здрасте.
Суть в следующем:
Есть таблица -
Клиент Сумма выручки
Кл1 100
Кл2 150
Кл3 250
... ...
КлN S
Заказчика интересует, сколько клиентов принесли какой объем выручки с определнным шагом, то есть = от 0 до 1000 руб - 5 клиентов, от 1001 до 2000 - 7 клиентов, от 2001 до 3000 - ... и т.д. Шаг задается по желанию заказчика.
Прошу прощения за сумбур.
Заранее благодарен.
|
|
1
ДенисЧ
15.04.13
✎
14:04
|
А что тут сложного?
Формируем таблицу интервалов. Джойним её с продажами по условию суммы, считаем результат
|
|
2
Рэйв
15.04.13
✎
14:06
|
Или если совсем просто, то перебором с проверкой куда попадает и ведением счетчиков.
|
|
3
Caesar
15.04.13
✎
14:08
|
(1) А запрос к двум таблицам значений бывает в природе?
|
|
4
ДенисЧ
15.04.13
✎
14:09
|
(3) да хоть к сотне...
|
|
5
Maxus43
15.04.13
✎
14:09
|
(3) да, но таблицу интервалов можно сделать и в запросе... как и всё остальное
|
|
6
Рэйв
15.04.13
✎
14:10
|
(3)Только чтобы скормить тз запросу она должна иметь типизированные колонки. Нетипизированные он есть не будет
|
|
7
Caesar
15.04.13
✎
14:15
|
(6) скормить одну ТЗ запросу я умею, а вот сгенерить таблицу в самом запросе - увы.
Покопаем.
|
|
8
Рэйв
15.04.13
✎
14:19
|
(7)Так же как и первую
примерно:
//------------
Запрос.Текст="Выбрать т1.кол1,т1.кол2 Поместить ВТ1 Из &т1 КАК т1;
Выбрать т2.кол1,т2.кол2 Поместить ВТ2 Из &т2 КАК т2;
Выбрать * ИЗ ВТ1
Левое соединение ВТ2 по ВТ1.Кол1=ВТ2.Кол1 "
Запрос.УстановитьПараметр("т1",ТЗ1);
Запрос.УстановитьПараметр("т2",ТЗ2);
|
|
9
Рэйв
15.04.13
✎
14:21
|
(8)А интервалы можно проверять через выбор
|
|