|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
Pasha_mix
09.10.12
✎
10:43
|
Есть две таблицы:
Первая таблица условия для начисления премии, вторая сумма с которой будет начислена премия. Как в запросе выбрать максимальную ставку для начисления премии? Пример: Условия 1000 руб - 5% 5000 руб - 10% 10000 - 15% Оборот = 6000. Если брать условие, что Суммаоборота > МинОборота, то под это условие подпадает и 5% и 10% Запрос для примера: ВЫБРАТЬ Обороты.Контрагент, Обороты.Оборот, Условия.Процент КАК Процент, ВЫБОР КОГДА Обороты.Оборот >= Условия.МинОборот ТОГДА Обороты.Оборот / 100 * Условия.Процент ИНАЧЕ 0 КОНЕЦ КАК Премия, Условия.МинОборот КАК МинОборот ИЗ (ВЫБРАТЬ "Вася" КАК Контрагент, 10000 КАК Оборот ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ "Петя", 20000) КАК Обороты ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ 5 КАК Процент, "Вася" КАК Контрагент, 5000 КАК МинОборот ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 3, "Вася", 1000 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 10, "Вася", 11000 ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ 18, "Петя", 25000) КАК Условия ПО Обороты.Контрагент = Условия.Контрагент УПОРЯДОЧИТЬ ПО Процент, Премия |
|||
1
DrShad
09.10.12
✎
10:45
|
сделай запросом шкалу, а потом по вхождению выбирай
|
|||
2
Pasha_mix
09.10.12
✎
10:48
|
(1)Можно пример?
|
|||
3
Axel2009
09.10.12
✎
10:49
|
нормальные люди делают градацию С ... ПО ...
|
|||
4
DrShad
09.10.12
✎
10:50
|
(2) можно, погодь
|
|||
5
GLazNik
09.10.12
✎
10:51
|
(2)
примерно так: ВЫБРАТЬ Таб1.Сумма, Таб1.Процент, Макс(Таб2.Сумма) ИЗ Условия КАК Таб1 ЛЕВОЕ СОЕДИНЕНИЕ Условия КАК Таб2 ПО Таб2.Сумма < Таб1.Сумма СГРУППИРОВАТЬ Таб1.Сумма,Таб1.Процент |
|||
6
DrShad
09.10.12
✎
10:53
|
(5) +1
|
|||
7
GLazNik
09.10.12
✎
10:54
|
+(5) Собственно Макс(Таб2.Сумма) это будет начало интервала (нужно добавить еще проверку на NULL для первого интервала), Таб1.Сумма это конец. Кидаем во временную таблицу и используем в конечном запросе
|
|||
8
In-Vin
09.10.12
✎
11:02
|
(0) упорядочить по убыванию и прочитать верхнюю строку
|
|||
9
Pasha_mix
09.10.12
✎
11:26
|
(5) А на примере кода для консоли отчета, можно привести пример? С группировкой что-то не выходит.
|
|||
10
Pasha_mix
09.10.12
✎
11:33
|
(5) А, кажется понял....
|
|||
11
Axel2009
09.10.12
✎
14:25
|
(5) а ненормальные пытаются играться с нарастающим итогом в том месте, где можно его обойти.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |