|
Валюта на каждую дату документа | ☑ | ||
---|---|---|---|---|
0
asder117
05.08.22
✎
15:37
|
Знакомый проходит тестирование "Построить Отчет который выводит продажи по дням с указанием: даты продажи, суммы продажи в рублях, суммы продажи в валюте, выбранной пользователем в шапке отчета." Валюта в документе не предусмотрена, делать надо на СКД
Я ему предложил вариант такой ВЫБРАТЬ ПоступлениеТоваровУслуг.Ссылка КАК Ссылка, ПоступлениеТоваровУслуг.Дата КАК Дата, ЕСТЬNULL(КурсыВалют.Курс,0) КАК Курс ИЗ Документ.ОказаниеУслуги КАК ПоступлениеТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО (КурсыВалют.Период В (ВЫБРАТЬ ПЕРВЫЕ 1 КурсыВалют.Период ИЗ РегистрСведений.КурсыВалют КАК КурсыВалют ГДЕ КурсыВалют.Период <= ПоступлениеТоваровУслуг.Дата УПОРЯДОЧИТЬ ПО КурсыВалют.Период УБЫВ)) ГДЕ КурсыВалют.Валюта = &Валюта Но если Валюту поменять (у которой нет курсов) записей не будет вообще (ну по идее так и должно быть) а они хоят чтобы ничего не сломалась и также если ввезти валюту только с одним курсов то выводится только 2 записи хотя по моему так должен быть последний срез..подскажите может кто делал таковую задачу..честно вроде с опытом а голову сломал |
|||
1
1Сергей
05.08.22
✎
15:42
|
Сделать временную таблицу, куда побросать все курсы на даты + одной строкой добавить рупь с курсом 1
|
|||
2
mikecool
05.08.22
✎
15:44
|
(0) не помогай знакомому, ему потом работать
|
|||
3
mikecool
05.08.22
✎
15:45
|
+2 особенно если не знаешь как
|
|||
4
mikecool
05.08.22
✎
15:59
|
1) условие на валюту - в соединение
2) нужен еще регламентный календарь, если хотят по всем датам |
|||
5
6awkup_true
05.08.22
✎
16:00
|
(1) курс получать во вложенном запросе по каждому документу еще можно
|
|||
6
vde69
05.08.22
✎
16:11
|
за прямой запрос к документу - сразу двойку...
кто мешает обращаться к регистрам проведения этого документа? |
|||
7
Lexandr
05.08.22
✎
16:12
|
Данные о продаже из документов? А не подвох ли это?
|
|||
8
asder117
05.08.22
✎
16:33
|
(7) Таковая задача)) Я сам знаю что надо из регистра продажи и связать с курсами временной таблицы (6)
|
|||
9
vde69
05.08.22
✎
16:36
|
(8) я за запрос из (0) при любой постановке задачи поставлю "минус", да и за "Такова задача" (за бездумное исполнение не верных ТЗ) то же поставлю "минус".
В результате ты постами (0) и (8) у меня полностью провалил-бы экзамен. |
|||
10
asder117
05.08.22
✎
16:38
|
(1) Это тоже я вариант подсказал сделать...но опять же если на дату документа курс не установлен значит должен браться срез последних
|
|||
11
asder117
05.08.22
✎
16:40
|
(9) Ъто запрос кстати взят из Срез последних на каждую дату в СКД и в запросе который внесен был в книгу знаний)) и это не ТЗ а задача на проверке на вшивость а про 8 почему нельзя продажи с курсами связать
|
|||
12
asder117
06.08.22
✎
00:32
|
(9) Сам такой придумал
ВЫБРАТЬ ПродажиОбороты.Период КАК Дата, СУММА(ПродажиОбороты.ВыручкаОборот) КАК СуммаПродаж ПОМЕСТИТЬ ДокументыПродаж ИЗ РегистрНакопления.Продажи.Обороты(, , ДЕНЬ, ) КАК ПродажиОбороты СГРУППИРОВАТЬ ПО ПродажиОбороты.Период ИНДЕКСИРОВАТЬ ПО Дата ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДокументыПродаж.Дата КАК Дата, ДокументыПродаж.СуммаПродаж КАК СуммаПродаж, МАКСИМУМ(КурсыВалют.Период) КАК Период ПОМЕСТИТЬ ВТМаксПериод ИЗ ДокументыПродаж КАК ДокументыПродаж ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО (ДокументыПродаж.Дата >= КурсыВалют.Период) ГДЕ КурсыВалют.Валюта = &Валюта СГРУППИРОВАТЬ ПО ДокументыПродаж.Дата, ДокументыПродаж.СуммаПродаж ИНДЕКСИРОВАТЬ ПО Дата, Период ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТМаксПериод.Дата КАК Дата, ВТМаксПериод.СуммаПродаж КАК СуммаПродаж, КурсыВалют.Курс КАК Курс ИЗ ВТМаксПериод КАК ВТМаксПериод ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют КАК КурсыВалют ПО ВТМаксПериод.Период = КурсыВалют.Период ГДЕ КурсыВалют.Валюта = &Валюта АВТОУПОРЯДОЧИВАНИЕ Все отрабатывает как надо. А как сделать если к примеру валюта заведена а курсов не заели..хотят чтобы просто сумма выходила..хотя как ни крути но один курс задать придется.. |
|||
13
asder117
06.08.22
✎
20:52
|
(12) если к примеру задали валюту на которую нет курса к примеру, следовательно виртуальная таблица курсов и дат курсовбудет пустая. Как можно в запросе проверит на пустоту виртуальную таблицу и присвоить к примеру курсу значение 1. Спасибо
|
|||
14
RomanYS
06.08.22
✎
21:42
|
(13) ЕстьNull(рег.курс, 1) как курс
|
|||
15
asder117
06.08.22
✎
23:38
|
(14) пробовал блин не работает...хотя натолкнул на мысль..спс
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |