|
v8: Не могу написать запрос с выбором процента скидки исходя из суммы покупки! =( | ☑ | ||
---|---|---|---|---|
0
Pingwin
26.06.12
✎
13:55
|
Есть Регистр.Продажи в нём измерение Контрагент и ресурс Сумма.
Есть Справочник.СистемаСкидок в нём у каждого элемента Табличная часть Скидки с Реквизитами Сумма и Процент. Каждый Справочник.Контрагент имеет реквизит .СистемаСкидок . Нужно построить отчёт, в кот. войдёт Контрагент и ПроцентСкидки. Написал запрос: Выбрать | РегПродажи.Контрагент, | РегПродажи.Сумма, | Контрагент.СистемаСкидок.Скидки. ( | СистемаСкидок.Скидки.Сумма, | СистемаСкидок.Скидки.Процент) как СистемаСкидки | Из РегистрНакопления.Продажи.Остатки КАК РегПродажи И тут затуп, как внутри запроса перебрать строки системы скидок и выудить от туда процент!? Никак? Только в выборке? |
|||
1
Ненавижу 1С
гуру
26.06.12
✎
13:56
|
не надо так ТЧ в запросе делать
| Контрагент.СистемаСкидок.Скидки. ( | СистемаСкидок.Скидки.Сумма, | СистемаСкидок.Скидки.Процент) как СистемаСкидки даже в 1С перестали так писать запросы |
|||
2
aleks-id
26.06.12
✎
14:00
|
использовать МАКСИМУМ и условие соединения суммарегистра <= сумматабчасти
|
|||
3
andrewks
26.06.12
✎
14:00
|
(1) неужели когда-то это было модно?
|
|||
4
andrewks
26.06.12
✎
14:02
|
(0) про соединения слышал?
|
|||
5
aleks-id
26.06.12
✎
14:05
|
(3) в типовых 8.0 нет-нет да проскакивало
|
|||
6
Pingwin
27.06.12
✎
13:22
|
(1) А как надо? И что изменится?!
(2) Не понял кого с кем соединяем?! СистемаСкидки получается всегда Результатом Запроса, т.к. содержит 3 строки и более! Если не сложно, хотябы примерный текст вашей идеи! |
|||
7
Pingwin
04.07.12
✎
01:44
|
Люди, как получить таблицу вида:
Контрагент | СуммаПродажи | СуммаСкидки | ПроцентСкидки Вася | 2000 | 1000 | 2% Вася | 2000 | 1500 | 3% Вася | 2000 | 2000 | 5% Петя | 3800 | 1000 | 2% Петя | 3800 | 1500 | 3% Петя | 3800 | 2000 | 5% Хелп ми!!! |
|||
8
Ненавижу 1С
гуру
04.07.12
✎
08:35
|
РегистрНакопления.Продажи содержит как сумму со скидкой, так и без, посчитать процент сможете?
|
|||
9
JeyRico
04.07.12
✎
09:13
|
Это самописка?
В регистр продажи так то неплохо бы писать еще и предоставленную скидку по этой продаже. |
|||
10
LAAry
04.07.12
✎
09:25
|
Выбрать
РегПродажи.Контрагент, Максимум(РегПродажи.Сумма) КАК Сумма, Максимум(Скидки.Сумма) КАК БазаСкидки Из РегистрНакопления.Продажи.Остатки КАК РегПродажи ЛевоеСоединение Справочник.СистемаСкидок.Скидки как скидки по РегПродажи.Контрагент.СистемаСкидок = Скидки.Ссылка и РегПродажи.Сумма>Скидки.Сумма Группировать по РегПродажи.Контрагент Потом Еще раз соединяешь со таб. частью справочника системы скидок по ссылке и сумме и получаешь нужный процент. Если проценты ВСЕГДА растут от базы скидки, можно 2-й раз не соединять и брать максимум от процента. |
|||
11
sinisterfrag
04.07.12
✎
09:32
|
Разжевал. осталось только проглатить.
ВЫБРАТЬ ПродажиОбороты.Контрагент КАК Контрагент, ЕСТЬNULL(ПродажиОбороты.СуммаОборот, 0) КАК СуммаПродажи ПОМЕСТИТЬ ВтПродажи ИЗ РегистрНакопления.Продажи.Обороты КАК ПродажиОбороты ИНДЕКСИРОВАТЬ ПО Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Контрагенты.Ссылка КАК Контрагент, СистемаСкидокСкидки.Сумма, СистемаСкидокСкидки.Процент ПОМЕСТИТЬ ВтСкидки ИЗ Справочник.Контрагенты КАК Контрагенты ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.СистемаСкидок.Скидки КАК СистемаСкидокСкидки ПО Контрагенты.СистемаСкидок = СистемаСкидокСкидки.Ссылка ИНДЕКСИРОВАТЬ ПО Контрагент ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВтПродажи.Контрагент, ВтПродажи.СуммаПродажи, МАКСИМУМ(ВтСкидки.Процент) КАК Процент ИЗ ВтПродажи КАК ВтПродажи ЛЕВОЕ СОЕДИНЕНИЕ ВтСкидки КАК ВтСкидки ПО ВтПродажи.Контрагент = ВтСкидки.Контрагент И ВтПродажи.СуммаПродажи >= ВтСкидки.Сумма СГРУППИРОВАТЬ ПО ВтПродажи.Контрагент, ВтПродажи.СуммаПродажи |
|||
12
sinisterfrag
04.07.12
✎
09:41
|
PS aleks-id
использовать МАКСИМУМ и условие соединения суммарегистра <= сумматабчасти если перевести на язык логики то у тебя получается "выбираем из справочники.скидки макс процент из больших или равных процентов" (т.е. ты выберешь не тот процент) т.е. если сумма продаж то по твоей логике ты выберишь 3 строку. Контрагент | СуммаПродажи | СуммаСкидки | ПроцентСкидки Вася | 2000 | 1000 | 2% Вася | 2000 | 1500 | 3% Вася | 2000 | 2000 | 5% думаю это не правильно нужно использовать максимум при условии что суммарегистра >= сумматабчасти |
|||
13
sinisterfrag
04.07.12
✎
09:42
|
сумма продаж 1700* забыл дописать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |