![]() |
![]() |
|
Как связать остатки по складу с САМЫМИ последними ценами контрагентов | ☑ | ||
---|---|---|---|---|
0
Yu13
04.02.09
✎
09:20
|
Что то с утра туплю. Нужно получить остатки по складу и САМЫЕ последние цены контрагентов. Срез последних по ценам номенклатуры контрагентов даёт несколько последних цен (по типам цен). Как запросом получить табличку Номенклатура/ Остатки по складу/ САМАЯ последняя цена контрагентов(по времени)? В голову лезут самые бредовые варианты. Направьте на путь истинный.
|
|||
1
Кадош
04.02.09
✎
09:21
|
запрос
ЛЕВОЕ СОЕДИНЕНИЕ |
|||
2
Нуф-Нуф
04.02.09
✎
09:21
|
Запрос
ЛЕВОЕ СОЕДИНЕНИЕ САМЫЕ ПОСЛЕДНИЕ |
|||
3
MNS_Ротерта
04.02.09
✎
09:31
|
(0) а дату среза поставили в виртуальной табл. РС?
|
|||
4
Маркетолог
04.02.09
✎
09:35
|
(3) Если нужны самые последние , то дата среза не обязательна.
|
|||
5
Yu13
04.02.09
✎
09:40
|
Ни фига, я и делаю левым соединением. Но те строки где есть несколько типов цен "затраиваются".
Нуф-Нуф: Что такое "САМЫЕ ПОСЛЕДНИЕ" |
|||
6
DK_L
04.02.09
✎
09:42
|
(5) Сделай максимум по цене с группировкой по номенклатуре
|
|||
7
Yu13
04.02.09
✎
09:45
|
DK L
Зачем максимум по цене? Мне последнюю надо... |
|||
8
Yu13
04.02.09
✎
09:48
|
Так тоже не катит:
ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад КАК Склад, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток, МАКСИМУМ(ЦеныНоменклатурыКонтрагентовСрезПоследних.Период) КАК Период, ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена КАК Цена ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних КАК ЦеныНоменклатурыКонтрагентовСрезПоследних ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток, ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена |
|||
9
Маркетолог
04.02.09
✎
09:52
|
Может вот так ?
"ВЫБРАТЬ | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток, | Цены.ТипЦен, | Цены.Цена |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | МаксДата.Номенклатура КАК Номенклатура, | ЦеныНоменклатуры.ТипЦен КАК ТипЦен, | ЦеныНоменклатуры.Цена КАК Цена | ИЗ | (ВЫБРАТЬ | ЦеныНоменклатуры.Номенклатура КАК Номенклатура, | МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период | ИЗ | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры | | СГРУППИРОВАТЬ ПО | ЦеныНоменклатуры.Номенклатура) КАК МаксДата | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры | ПО МаксДата.Номенклатура = ЦеныНоменклатуры.Номенклатура | И МаксДата.Период = ЦеныНоменклатуры.Период) КАК Цены | ПО ТоварыНаСкладахОстатки.Номенклатура = Цены.Номенклатура" |
|||
10
НЕА123
04.02.09
✎
10:04
|
попробуй так:
ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад КАК Склад, ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток, МАКСИМУМ(ЦеныНоменклатурыКонтрагентовСрезПоследних.Период) КАК Период, ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена КАК Цена ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(, Номенклатура = Номенклатура) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних ПО ТоварыНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура СГРУППИРОВАТЬ ПО ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток, ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена |
|||
11
Yu13
04.02.09
✎
10:18
|
Нет. Всё равно "двоится". Прям мистика какая-то...
|
|||
12
hhhh
04.02.09
✎
10:22
|
(5) так с типом цен надо заранее определиться.
|
|||
13
Immortal
04.02.09
✎
10:23
|
(12)да без разницы, просто надо левым соединением цеплять не "Цена,Период,ТипЦен", а "Цена,Период"
|
|||
14
НЕА123
04.02.09
✎
10:25
|
(11) в запросе (10) тоже двоится? странно...
|
|||
15
Yu13
04.02.09
✎
10:36
|
Тип цен заранее не известен, надо брать последний по времени.
|
|||
16
Kaushly
04.02.09
✎
10:49
|
Может так:
"ВЫБРАТЬ | ТоварыНаСкладахОстатки.Склад, | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.КоличествоОстаток, | ЕСТЬNULL(ВложенныйЗапрос.Цена, 0) КАК Цена |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, ) КАК ТоварыНаСкладахОстатки | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | ВложенныйЗапрос.Номенклатура КАК Номенклатура, | МАКСИМУМ(ЦеныНоменклатурыКонтрагентовСрезПоследних.Цена) КАК Цена | ИЗ | (ВЫБРАТЬ | ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура КАК Номенклатура, | МАКСИМУМ(ЦеныНоменклатурыКонтрагентовСрезПоследних.Период) КАК Период | ИЗ | РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних | | СГРУППИРОВАТЬ ПО | ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура) КАК ВложенныйЗапрос | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатурыКонтрагентов.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыКонтрагентовСрезПоследних | ПО ВложенныйЗапрос.Номенклатура = ЦеныНоменклатурыКонтрагентовСрезПоследних.Номенклатура | И ВложенныйЗапрос.Период = ЦеныНоменклатурыКонтрагентовСрезПоследних.Период | | СГРУППИРОВАТЬ ПО | ВложенныйЗапрос.Номенклатура) КАК ВложенныйЗапрос | ПО ТоварыНаСкладахОстатки.Номенклатура = ВложенныйЗапрос.Номенклатура" |
|||
17
Маркетолог
04.02.09
✎
10:53
|
Лучше скажите что делать если несколько последних цен ?
Ведь регистр сведений ЦеныНоменклатуры имеет периодичность День |
|||
18
hhhh
04.02.09
✎
11:13
|
||||
19
Yu13
04.02.09
✎
11:17
|
Kaushly
Вроде получается похоже. Блин, вроде простая вещь, а как заморочено. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |