|
Нужна помощь с запросом | ☑ | ||
---|---|---|---|---|
0
Metman
15.05.12
✎
06:49
|
Здравствуйте.Почему задваивается начальный остаток?
ВЫБРАТЬ | ЦеныНоменклатуры.Период КАК ПериодНачало, | МИНИМУМ(ЦеныНоменклатурыКопия.Период) КАК ПериодКонец, | ЦеныНоменклатуры.Номенклатура, | ЦеныНоменклатуры.Цена |ПОМЕСТИТЬ ПредварительнаяВыборка |ИЗ | РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатурыКопия | ПО ЦеныНоменклатуры.Номенклатура = ЦеныНоменклатурыКопия.Номенклатура | И ЦеныНоменклатуры.ЕдиницаИзмерения = ЦеныНоменклатурыКопия.ЕдиницаИзмерения | И ЦеныНоменклатуры.ХарактеристикаНоменклатуры = ЦеныНоменклатурыКопия.ХарактеристикаНоменклатуры | И ЦеныНоменклатуры.Валюта = ЦеныНоменклатурыКопия.Валюта | И ЦеныНоменклатуры.ТипЦен = ЦеныНоменклатурыКопия.ТипЦен | И ЦеныНоменклатуры.Период < ЦеныНоменклатурыКопия.Период |ГДЕ | ЦеныНоменклатуры.ТипЦен = &ТипЦен | |СГРУППИРОВАТЬ ПО | ЦеныНоменклатуры.Период, | ЦеныНоменклатуры.Номенклатура, | ЦеныНоменклатуры.Цена |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЦеныПоПериодам.ПериодНачало КАК ПериодНачало, | КОНЕЦПЕРИОДА(ЕСТЬNULL(ДОБАВИТЬКДАТЕ(ЦеныПоПериодам.ПериодКонец, ДЕНЬ, -1), ДАТАВРЕМЯ(3999, 12, 31)), ДЕНЬ) КАК ПериодКонец, | ЦеныПоПериодам.Номенклатура КАК Номенклатура, | ЦеныПоПериодам.Цена |ПОМЕСТИТЬ Цены |ИЗ | ПредварительнаяВыборка КАК ЦеныПоПериодам |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | NULL КАК Док, | NULL КАК ДатаДок, | NULL КАК НомерДок, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * ЕСТЬNULL(Цены.Цена, 0)) КАК НачОст, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * ЕСТЬNULL(Цены.Цена, 0)) КАК КонОст, | СУММА(ВЫБОР | КОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход - ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход > 0 | ТОГДА (ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход - ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) * ЕСТЬNULL(Цены.Цена, 0) | ИНАЧЕ 0 | КОНЕЦ) КАК Приход, | СУММА(ВЫБОР | КОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход - ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход > 0 | ТОГДА (ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход - ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) * ЕСТЬNULL(Цены.Цена, 0) | ИНАЧЕ 0 | КОНЕЦ) КАК Расход, | ТоварыНаСкладахОстаткиИОбороты.Регистратор.СуммаДокумента КАК СуммаДокумента |ИЗ | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты | ЛЕВОЕ СОЕДИНЕНИЕ Цены КАК Цены | ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = Цены.Номенклатура | И ТоварыНаСкладахОстаткиИОбороты.Период >= Цены.ПериодНачало | И ТоварыНаСкладахОстаткиИОбороты.Период <= Цены.ПериодКонец | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстаткиИОбороты.Регистратор.СуммаДокумента |; |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗРЕШЕННЫЕ | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток * ЕСТЬNULL(Цены.Цена, 0)) КАК НачОст, | СУММА(ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток * ЕСТЬNULL(Цены.Цена, 0)) КАК КонОст, | СУММА(ВЫБОР | КОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход - ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход > 0 | ТОГДА (ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход - ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход) * ЕСТЬNULL(Цены.Цена, 0) | ИНАЧЕ 0 | КОНЕЦ) КАК Приход, | СУММА(ВЫБОР | КОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход - ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход > 0 | ТОГДА (ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход - ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход) * ЕСТЬNULL(Цены.Цена, 0) | ИНАЧЕ 0 | КОНЕЦ) КАК Расход, | ТоварыНаСкладахОстаткиИОбороты.Период КАК ДатаДок, | ТоварыНаСкладахОстаткиИОбороты.Регистратор.Номер КАК НомерДок, | ТоварыНаСкладахОстаткиИОбороты.Регистратор КАК Док, | ТоварыНаСкладахОстаткиИОбороты.Регистратор.СуммаДокумента КАК СуммаДокумента |ИЗ | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, Регистратор, , Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Цены КАК Цены | ПО ТоварыНаСкладахОстаткиИОбороты.Номенклатура = Цены.Номенклатура | И ТоварыНаСкладахОстаткиИОбороты.Период >= Цены.ПериодНачало | И ТоварыНаСкладахОстаткиИОбороты.Период <= Цены.ПериодКонец | |СГРУППИРОВАТЬ ПО | ТоварыНаСкладахОстаткиИОбороты.Период, | ТоварыНаСкладахОстаткиИОбороты.Регистратор.Номер, | ТоварыНаСкладахОстаткиИОбороты.Регистратор, | ТоварыНаСкладахОстаткиИОбороты.Регистратор.СуммаДокумента | |УПОРЯДОЧИТЬ ПО | ДатаДок"; |
|||
1
Wobland
15.05.12
✎
06:53
|
почти не глядя: не учитываешь все измерения в соединении
|
|||
2
АцкийЖипер
15.05.12
✎
07:31
|
А что нужно получить запросом? Цель то какая?
|
|||
3
Metman
15.05.12
✎
07:34
|
торг-29 для оптовых складов
|
|||
4
davlen
15.05.12
✎
07:44
|
Кури параметры вирт таблиц РегНакопОстаткиИОбороты МетодДополнения
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |