![]() |
![]() |
![]() |
|
нужна помощь с запросом | ☑ | ||
---|---|---|---|---|
0
zippygrill
31.05.13
✎
10:53
|
Хочу получить значения "срез последних на каждую дату".
Только в этот раз структура хранения данных немножко "сложновата" для меня(2 периодические регистры). Есть основная таблица(в этом примере таблица с отгрузками), и 2 периодических регистров сведений. значение "срез последних на каждую дату" нужно получить из второго периодического регистра. вот основная таблица: ВЫБРАТЬ РАЗРЕШЕННЫЕ РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Количество, ВЫБОР КОГДА РеализацияТоваровУслугТовары.СерияНоменклатуры.СрокГодности ЕСТЬ NULL ИЛИ РеализацияТоваровУслугТовары.СерияНоменклатуры.СрокГодности < ДАТАВРЕМЯ(2000, 1, 1) ТОГДА РеализацияТоваровУслугТовары.Ссылка.Дата ИНАЧЕ РеализацияТоваровУслугТовары.СерияНоменклатуры.СрокГодности КОНЕЦ КАК ДатаСреза ПОМЕСТИТЬ втОсновная ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Ссылка Поле "ДатаСреза" буду использовать для соединение с остальными таблицами. 1-ый периодический регистр "ТипАкциза" имеет измерение Номенклатура и ресурс "ТипАкциза"; 2-ой периодический регистр "СвойстваТипаАкциза" имеет измерение ТипАкциза и ресурсы "Ставка" и "ЗависитОтКрепость" что-нибудь понятное написал? |
|||
1
zippygrill
31.05.13
✎
10:56
|
начал так писать:
ВЫБРАТЬ РАЗРЕШЕННЫЕ РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Количество, ВЫБОР КОГДА РеализацияТоваровУслугТовары.СерияНоменклатуры.СрокГодности ЕСТЬ NULL ИЛИ РеализацияТоваровУслугТовары.СерияНоменклатуры.СрокГодности < ДАТАВРЕМЯ(2000, 1, 1) ТОГДА РеализацияТоваровУслугТовары.Ссылка.Дата ИНАЧЕ РеализацияТоваровУслугТовары.СерияНоменклатуры.СрокГодности КОНЕЦ КАК ДатаСреза ПОМЕСТИТЬ втОсновная ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ _ТипАкциза.Период КАК МаксПериодТипАкциза, втОсновная.Номенклатура, втОсновная.Количество ПОМЕСТИТЬ втОсновнаяИМаксПериодКодаПродукции ИЗ втОсновная КАК втОсновная ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений._АкцидентНоменклатуры_ТипАкциза КАК _ТипАкциза ПО втОсновная.Номенклатура = _ТипАкциза.Номенклатура И втОсновная.ДатаСреза >= _ТипАкциза.Период ; дальше не знаю как соединить 2 регистр. |
|||
2
zippygrill
31.05.13
✎
11:01
|
*ПОМЕСТИТЬ втОсновнаяИМаксПериодТипАкциза - опечатался
|
|||
3
zippygrill
31.05.13
✎
11:04
|
если взять и соединить 2 регистр по ТипАкциза с 1-ым регистром и потом еще добавить второе условие по ДатеСреза то будет ругатся что есть противоречие в связь.
|
|||
4
zippygrill
31.05.13
✎
11:12
|
ну?
|
|||
5
zippygrill
31.05.13
✎
11:18
|
дохлый номер чтоли?
|
|||
6
zippygrill
31.05.13
✎
11:23
|
или это настолько очевидно что никто не хочет писать? :)
|
|||
7
shuhard
31.05.13
✎
11:24
|
(6) тема обсосана до дыр
и для пятницы не пригодна |
|||
8
zippygrill
31.05.13
✎
11:40
|
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений._АкцидентНоменклатуры_ТипАкциза КАК _ТипАкциза
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений._СвойстваТипаАкциза КАК _СвойстваТипаАкциза ПО _ТипАкциза.ТипАкциза = _СвойстваТипаАкциза.ТипАкциза //тут по идее нужно еще условие по ДатеСреза? ПО втОсновная.Номенклатура = _ТипАкциза.Номенклатура И втОсновная.ДатаСреза >= _ТипАкциза.Период |
|||
9
zippygrill
03.06.13
✎
08:47
|
ну направление подскажите?
|
|||
10
Cyberhawk
03.06.13
✎
08:58
|
Я делал в СКД Книга знаний: Срез последних на каждую дату в запросе
|
|||
11
zippygrill
03.06.13
✎
09:00
|
(10) блин у меня 2 регистра. с одним не проблема для меня :)
|
|||
12
zippygrill
03.06.13
✎
09:08
|
сейчас еще раз позубрим ссылку!
|
|||
13
zippygrill
03.06.13
✎
09:41
|
коллеги, в итоге вышел вот такой запрос:
ошибся я в чем ни будь или нет? ВЫБРАТЬ РАЗРЕШЕННЫЕ РеализацияТоваровУслугТовары.Номенклатура, РеализацияТоваровУслугТовары.Количество, ВЫБОР КОГДА РеализацияТоваровУслугТовары.СерияНоменклатуры.СрокГодности ЕСТЬ NULL ИЛИ РеализацияТоваровУслугТовары.СерияНоменклатуры.СрокГодности < ДАТАВРЕМЯ(2000, 1, 1) ТОГДА РеализацияТоваровУслугТовары.Ссылка.Дата ИНАЧЕ РеализацияТоваровУслугТовары.СерияНоменклатуры.СрокГодности КОНЕЦ КАК ДатаСреза ПОМЕСТИТЬ втОсновная ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары ГДЕ РеализацияТоваровУслугТовары.Ссылка = &Ссылка ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ МАКСИМУМ(_ТипАкциза.Период) КАК МаксПериодТипАкциза, втОсновная.Номенклатура, втОсновная.Количество ПОМЕСТИТЬ втОсновнаяИМаксПериодТипАкциза ИЗ втОсновная КАК втОсновная ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений._АкцидентНоменклатуры_ТипАкциза КАК _ТипАкциза ПО втОсновная.Номенклатура = _ТипАкциза.Номенклатура И втОсновная.ДатаСреза >= _ТипАкциза.Период СГРУППИРОВАТЬ ПО втОсновная.Номенклатура, втОсновная.Количество ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ _ТипАкциза.ТипАкциза КАК ТипАкциза, втОсновнаяИМаксПериодТипАкциза.Номенклатура КАК Номенклатура, СУММА(втОсновнаяИМаксПериодТипАкциза.Количество) КАК Количество, _СвойстваТипаАкциза.ЗависитОтКрепости, _СвойстваТипаАкциза.СтавкаЗаЛитр ИЗ втОсновнаяИМаксПериодТипАкциза КАК втОсновнаяИМаксПериодТипАкциза ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений._АкцидентНоменклатуры_ТипАкциза КАК _ТипАкциза ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений._СвойстваТипаАкциза КАК _СвойстваТипаАкциза ПО _ТипАкциза.Период = _СвойстваТипаАкциза.Период И _ТипАкциза.ТипАкциза = _СвойстваТипаАкциза.ТипАкциза ПО втОсновнаяИМаксПериодТипАкциза.Номенклатура = _ТипАкциза.Номенклатура И втОсновнаяИМаксПериодТипАкциза.МаксПериодТипАкциза = _ТипАкциза.Период СГРУППИРОВАТЬ ПО втОсновнаяИМаксПериодТипАкциза.Номенклатура, _ТипАкциза.ТипАкциза, _СвойстваТипаАкциза.ЗависитОтКрепости, _СвойстваТипаАкциза.СтавкаЗаЛитр ИТОГИ СУММА(Количество) ПО ТипАкциза |
|||
14
zippygrill
03.06.13
✎
10:22
|
?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |