|
Помогите с запросом по ценам номенклатуры
|
|||
---|---|---|---|
#18+
С запросами SQL раньше не работал. Делаю первые попытки. Надо получить последние цены номенклатуры, в разрезе поставщиков. Если поставщиков было несколько, надо взять последнего. Вот что у меня пока получилось: ТекстЗапроса = " |select | СпрНом.Code Код, | date Дата, | cast(value as numeric(14,2)) Цена, | ДокПриход.SP437 [Клиент $Справочник.Контрагенты], | СпрКонтр.SP56 ИНН |from _1sconst (nolock) |INNER JOIN |$Справочник.Номенклатура as СпрНом ON СпрНом.ID = _1sconst.OBJID |INNER JOIN |$Документ.ПриходнаяНакладная as ДокПриход ON ДокПриход.iddoc = _1sconst.docid |INNER JOIN |$Справочник.Контрагенты as СпрКонтр ON СпрКонтр.ID = ДокПриход.SP437 | |where |_1sconst.id=:ИДЦена |and cast(value as numeric(14,2))>0 |and date<=:ВыбДата1 |order by СпрНом.Code desc, date desc |"; Запрос выводит цены на все даты для каждой номенклатуры, а как отобрать из него только последние для каждой номенклатуры? Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2013, 11:25 |
|
Помогите с запросом по ценам номенклатуры
|
|||
---|---|---|---|
#18+
Первым запросом получаем сочетание номенклатурной позиции и самого позднего документа по ней, вторым, по этим данным, вытягиваем стоимость. Select into #t Max(Шапка.ДатаВремяДокумента), ТЧ.IDНоменклатуры From *** Шапка Join *** ТЧ on Шапка.IDDoc = ТЧ.IDDoc Group by ТЧ.IDНоменклатуры Select Спр.Номенклатура, Шапка.ДатаВремяДокумента, ТЧ.Цена From *** Шапка Join *** ТЧ on Шапка.IDDoc = ТЧ.IDDoc Join #t t on t.ДатаВремяДокумента = Шапка.ДатаВремяДокумента And t.IDНоменклатуры = ТЧ.IDНоменклатуры Join *** Спр on Спр.ID = ТЧ.IDНоменклатуры Если нужен ещё и поставщик, то добавляем его в первый и второй запросы. Поясните, зачем вам таблица констант? ЗЫ Это же 1С++? У них есть свой форум. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2013, 13:14 |
|
Помогите с запросом по ценам номенклатуры
|
|||
---|---|---|---|
#18+
Есть справочник Номенклатуры, у него есть периодический реквизит ЦенаОМТС, который изменяется документами. Нужно получить последнюю цену для каждой номенклатуры на определённую дату, с указанием контрагента который последним эту номенклатуру поставил. В _1sconst хранится iddoc документа который изменил цену, а из этого документа получаю контрагента. Т.е у выходной таблицы должны быть следующие столбцы код номенклатуры, последняя цена на дату, дата цены, контрагент, инн контрагента. В таблицу попадает несколько цен для каждой номенклатуры, а нужна только последняя. Спасибо, напишу и на форум 1с++. Из таблиц констант получать таблицу мне показалось проще. Вопрос в том как правильно наложить нужный отбор. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.06.2013, 14:58 |
|
|
start [/forum/topic.php?fid=28&msg=38304916&tid=1519789]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 318ms |
total: | 474ms |
0 / 0 |