Имя: Пароль:
1C
1С v8
Помогите с запросом
,
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) а ненормальные пытаются играться с нарастающим итогом в том месте, где можно его обойти.