Имя: Пароль:
1C
1С v8
как делать такие запросы?
0 dreamoff
 
16.07.13
08:44
необходимо собрать количество карт по 3%,5%,10%,15% и 20%.т.е.есть карточку у которые процент указан сразу в т.ч. справочника карты,а есть накопительные,т.е.,например есть 3%,а значение=0,а 10% значение=10000.значит скидка появится ,только когда сумма накоплений станет >=10000,а пока скидка 0%.значение тоже указано в тч справочника.объясни как такие запросы составляются?
1 dreamoff
 
16.07.13
08:44
мне мозгов хватило только на такой запрос.и то он неправильный)

ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
   СУММА(ВЫБОР
           КОГДА КартыПДСУсловияПДС.ПроцентСумма = 20
                   И ПДСОстаткиИОбороты.СуммаКонечныйОстаток >= КартыПДСУсловияПДС.Значение
               ТОГДА ПДСОстаткиИОбороты.СуммаСкидкиОборот
           ИНАЧЕ 0
       КОНЕЦ) КАК Скидки20,
   СУММА(ВЫБОР
           КОГДА КартыПДСУсловияПДС.ПроцентСумма = 15
                   И ПДСОстаткиИОбороты.СуммаКонечныйОстаток >= КартыПДСУсловияПДС.Значение
               ТОГДА ПДСОстаткиИОбороты.СуммаСкидкиОборот
           ИНАЧЕ 0
       КОНЕЦ) КАК Скидки15,
   СУММА(ВЫБОР
           КОГДА КартыПДСУсловияПДС.ПроцентСумма = 10
                   И ПДСОстаткиИОбороты.СуммаКонечныйОстаток >= КартыПДСУсловияПДС.Значение
               ТОГДА ПДСОстаткиИОбороты.СуммаСкидкиОборот
           ИНАЧЕ 0
       КОНЕЦ) КАК Скидки10,
   СУММА(ВЫБОР
           КОГДА КартыПДСУсловияПДС.ПроцентСумма = 3
                   И ПДСОстаткиИОбороты.СуммаКонечныйОстаток >= КартыПДСУсловияПДС.Значение
               ТОГДА ПДСОстаткиИОбороты.СуммаСкидкиОборот
           ИНАЧЕ 0
       КОНЕЦ) КАК Скидки3,
   СУММА(ВЫБОР
           КОГДА КартыПДСУсловияПДС.ПроцентСумма = 3
                   И ПДСОстаткиИОбороты.СуммаКонечныйОстаток < КартыПДСУсловияПДС.Значение
               ТОГДА ПДСОстаткиИОбороты.СуммаСкидкиОборот
           ИНАЧЕ 0
       КОНЕЦ) КАК Скидки0,
   ПДСОстаткиИОбороты.Регистратор.НомерЧека,
   ПДСОстаткиИОбороты.КартаПДС КАК Карта
ИЗ
   РегистрНакопления.ПДС.ОстаткиИОбороты(, , Регистратор, , ) КАК ПДСОстаткиИОбороты
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.КартыПДС.УсловияПДС КАК КартыПДСУсловияПДС
       ПО ПДСОстаткиИОбороты.КартаПДС = КартыПДСУсловияПДС.Ссылка

СГРУППИРОВАТЬ ПО
   КартыПДСУсловияПДС.ПроцентСумма,
   ПДСОстаткиИОбороты.СуммаКонечныйОстаток,
   КартыПДСУсловияПДС.Значение,
   ПДСОстаткиИОбороты.Регистратор.НомерЧека,
   ПДСОстаткиИОбороты.КартаПДС
2 НаборДанных
 
16.07.13
08:51
(0)Мне кажется сначала нужно понять как составляются буквы в слова, а слова в предложения.
3 dreamoff
 
16.07.13
08:58
что непонятно?я постараюсь более вразумительно описать
4 Ненавижу 1С
 
гуру
16.07.13
08:58
них непонятно
5 НаборДанных
 
16.07.13
08:59
(3)Напиши просто, что хочешь получить в итоге, что есть на данный момент в базе.
6 Ненавижу 1С
 
гуру
16.07.13
09:02
+(5) а также что имеется, но нормальным языком
7 dreamoff
 
16.07.13
09:04
попробую
есть регистр накопления БДС,хранит накопления по карточке.справочник карты с тч,в котором указаны скидка и необходимое накопление для скидки.т.е.0%=0,3%=3000,5%=5000 и т.д.когда у карты накопления превышаю 3000,то она получает скидку в 3%,например.это понятно?
8 dreamoff
 
16.07.13
09:05
необходимо посчитать,сколько карт с 0%,сколь с 3% скидки и т.д.
9 shuhard
 
16.07.13
09:06
(7) кто на ком стоял ?
10 dreamoff
 
16.07.13
09:09
(9) не понял вопроса
11 Ненавижу 1С
 
гуру
16.07.13
09:10
1. есть сомнение в правильности использования регистра остатков вместо оборотов
2. так тебе нужно количество карт или суммы скидок по ним?
3. при чем тут номер чека?
12 dreamoff
 
16.07.13
09:15
номер чека от первого варианта остался.количество карт.я тоже думал об остатках,но сомневался
13 dreamoff
 
16.07.13
09:16
в смысле наоборот )
14 Ненавижу 1С
 
гуру
16.07.13
09:17
(13) совсем стало непонятно
15 dreamoff
 
16.07.13
09:19
мне нужно получать количество карт по скидкам за период
16 Ненавижу 1С
 
гуру
16.07.13
09:27
ВЫБРАТЬ РАЗРЕШЕННЫЕ
КартыПДСУсловияПДС.Ссылка КАК Карта,
МАКСИМУМ(КартыПДСУсловияПДС.ПроцентСумма) КАК Процент
ПОМЕСТИТЬ КартыПроценты
ИЗ Справочник.КартыПДС.УсловияПДС КАК КартыПДСУсловияПДС
ЛЕВОЕ  СОЕДИНЕНИЕ РегистрНакопления.ПДС.Обороты КАК ПДСОбороты
ПО ПДСОбороты.КартаПДС = КартыПДСУсловияПДС.Ссылка
И ПДСОбороты.СуммаОборот>=КартыПДСУсловияПДС.Значение
СГРУППИРОВАТЬ ПО КартыПДСУсловияПДС.Ссылка;

ВЫБРАТЬ
Процент,
КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Карта) КАК КоличествоКарт
ИЗ КартыПроценты  
СГРУППИРОВАТЬ ПО Процент
17 dreamoff
 
16.07.13
09:36
(16) а можно объяснить логику запроса.просто я не силен в использовании временных таблиц
18 Ненавижу 1С
 
гуру
16.07.13
09:39
(16) первый запрос строит таблицу соответствия каждой карте ее действующей скидки (проценту)
второй считает количество карт попавших в каждый процент

там можно так изменить

ЕСТЬNULL(МАКСИМУМ(КартыПДСУсловияПДС.ПроцентСумма),0) КАК Процент

для карт, которые еще не включились в работу
19 Невский
 
16.07.13
09:39
Писец. Напиши, в рот положи, да еще разжуй
20 dreamoff
 
16.07.13
09:41
(19) я хочу понять как это работает и научиться пользоваться,а не тупо скопировать
21 Ненавижу 1С
 
гуру
16.07.13
09:41
+(19) Стаж: 6 лет 1 месяц 25 дней
22 dreamoff
 
16.07.13
09:42
(21) я с 7ки,не там много работал в 8ке
23 Ненавижу 1С
 
гуру
16.07.13
09:43
(22) 7ку пора уже забывать как она выглядит
24 dreamoff
 
16.07.13
09:43
а скд вообще меньше месяца работаю
(23) ну вот такое упущение,нужно наверстывать((
25 Невский
 
16.07.13
09:45
(20) скачай консоль запросов, вставь туда этот запрос и играйся с ним, рано или поздно поймешь.
26 dreamoff
 
16.07.13
09:47
(25)спасибо за совет,так и сделаю
 Ненавижу 1С,спасибо за помощь,буду разбираться)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.