|
Как выбрать данные из запроса, где уже посчитанны итоги? | ☑ | ||
---|---|---|---|---|
0
Jack-Sun
23.09.11
✎
11:36
|
Задача:
Проверить, по всем ли Счетам на оплату выставлены Реализации в полном объеме. На один Счет на оплату может приходится несколько Реализаций. Видимое решение: Выбрать все Реализации, и сгруппировать их по Счетам на оплату, просуммировав реквизит "СуммаДокумента" Реализаций и Сравнив их с "СуммойДокумента" Счета на оплату. Пользователю вывести только те, где общая сумма реализаций по счету отличается от суммы счета. Как делаю: Запросом выбираю счета и реализации, рассчитываю ИТОГИ Сумма(РеализацияСумма), Максимум(СчетСумма) Проблема: Как из получившейся таблицы запросом выбрать только те строки, где (РеализацияСумма - СчетСумма) <> 0 ? Текст запроса: ВЫБРАТЬ Счет.Ссылка КАК СчетСсылка, Счет.СуммаДокумента КАК СчетСумма, Реализация.Ссылка КАК РеализацияСсылка, Реализация.СуммаДокумента КАК РеализацияСумма ИЗ Документ.РеализацияТоваровУслуг КАК Реализация ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК Счет ПО Реализация.СчетНаОплатуПокупателю = Счет.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СФ ПО (СФ.ДокументОснование = Реализация.Ссылка) ГДЕ (Реализация.СчетНаОплатуПокупателю = ЗНАЧЕНИЕ(Документ.СчетНаОплатуПокупателю.ПустаяСсылка) ИЛИ Реализация.СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериода) УПОРЯДОЧИТЬ ПО Реализация.СчетНаОплатуПокупателю.Дата ИТОГИ МАКСИМУМ(СчетСумма), СУММА(РеализацияСумма) ПО СчетСсылка |
|||
1
unregistered
23.09.11
✎
11:43
|
Группировать по счету и реализации и условие ИМЕЮЩИЕ МАКСИМУМ(СчетСумма)<>СУММА(РеализацияСумма)
|
|||
2
unregistered
23.09.11
✎
11:43
|
(1)* Группировать по счету разумеется.
|
|||
3
Jack-Sun
23.09.11
✎
12:25
|
(2) Большое спасибо. Помогло!
|
|||
4
Jack-Sun
26.09.11
✎
13:42
|
Вскрылась проблемка: запрос работает, но неверно выбирает данные по строке:
МАКСИМУМ(Счет.СуммаДокумента) <> СУММА(Реализация.СуммаДокумента) Данное условие как буд-то стоит без функций МАКСИМУМ и МИНИМУМ. Полный текст запроса (конфигурация Бухгалтерия предприятия 2.0): ВЫБРАТЬ Реализация.СчетНаОплатуПокупателю КАК СчетВРеализации, ВЫБОР КОГДА Счет.Проведен ТОГДА "+" ИНАЧЕ "-" КОНЕЦ КАК СчетПроведен, ВЫБОР КОГДА Счет.ПометкаУдаления ТОГДА "х" ИНАЧЕ "" КОНЕЦ КАК СчетУдален, Счет.Ссылка КАК СчетСсылка, Счет.СуммаДокумента КАК СчетСумма, ВЫБОР КОГДА Реализация.Проведен ТОГДА "+" ИНАЧЕ "-" КОНЕЦ КАК РеализацияПроведен, ВЫБОР КОГДА Реализация.ПометкаУдаления ТОГДА "х" ИНАЧЕ "" КОНЕЦ КАК РеализацияУдален, Реализация.Ссылка КАК РеализацияСсылка, Реализация.СуммаДокумента КАК РеализацияСумма, ВЫБОР КОГДА СФ.Проведен ТОГДА "+" ИНАЧЕ "-" КОНЕЦ КАК СФПроведен, ВЫБОР КОГДА СФ.ПометкаУдаления ТОГДА "х" ИНАЧЕ "" КОНЕЦ КАК СФУдален, СФ.Ссылка КАК СФСсылка, СФ.СуммаДокумента КАК СФСумма ИЗ Документ.РеализацияТоваровУслуг КАК Реализация ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный КАК СФ ПО (СФ.ДокументОснование = Реализация.Ссылка) ПОЛНОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПокупателю КАК Счет ПО Реализация.СчетНаОплатуПокупателю = Счет.Ссылка СГРУППИРОВАТЬ ПО Счет.Ссылка, Счет.СуммаДокумента, Реализация.Ссылка, Реализация.СуммаДокумента, СФ.Ссылка, Реализация.СчетНаОплатуПокупателю, ВЫБОР КОГДА Счет.Проведен ТОГДА "+" ИНАЧЕ "-" КОНЕЦ, ВЫБОР КОГДА Счет.ПометкаУдаления ТОГДА "х" ИНАЧЕ "" КОНЕЦ, ВЫБОР КОГДА Реализация.Проведен ТОГДА "+" ИНАЧЕ "-" КОНЕЦ, ВЫБОР КОГДА Реализация.ПометкаУдаления ТОГДА "х" ИНАЧЕ "" КОНЕЦ, ВЫБОР КОГДА СФ.Проведен ТОГДА "+" ИНАЧЕ "-" КОНЕЦ, ВЫБОР КОГДА СФ.ПометкаУдаления ТОГДА "х" ИНАЧЕ "" КОНЕЦ, СФ.СуммаДокумента ИМЕЮЩИЕ ((НЕ Счет.Проведен) ИЛИ Счет.ПометкаУдаления ИЛИ (НЕ Реализация.Проведен) ИЛИ Реализация.ПометкаУдаления ИЛИ (НЕ СФ.Проведен) ИЛИ СФ.ПометкаУдаления ИЛИ МАКСИМУМ(Счет.СуммаДокумента) <> СУММА(Реализация.СуммаДокумента) ИЛИ Реализация.СуммаДокумента <> СФ.СуммаДокумента ИЛИ Реализация.СчетНаОплатуПокупателю = ЗНАЧЕНИЕ(Документ.СчетНаОплатуПокупателю.ПустаяСсылка) И (Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода) ИЛИ СФ.ДокументОснование = ЗНАЧЕНИЕ(Документ.РеализацияТоваровУслуг.ПустаяСсылка)) И Счет.Дата МЕЖДУ &НачалоПериода И &КонецПериода УПОРЯДОЧИТЬ ПО Счет.Дата, Реализация.Дата ИТОГИ МАКСИМУМ(СчетСумма), СУММА(РеализацияСумма), СУММА(СФСумма) ПО СчетВРеализации Подскажите пожалуйста литературу по языку запросов 1С. |
|||
5
kuza2000
26.09.11
✎
14:24
|
(4) Почитай основы SQL - вначале разницы не заметишь. Потом про виртуальные таблицы и итоги. Потом про то, что значат фигурные скобки :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |