|
А вот никак не обойти проблему - поле вне группировки? | ☑ | ||
---|---|---|---|---|
0
IKSparrow
30.09.11
✎
21:20
|
Есть огромный такой запрос и одна из его частей выглядит так:
ВЫБРАТЬ ЗачётПредоплаты.КонтрагентСубконто3, СУММА(-ЗачётПредоплаты.Сумма), 0, 0, ЗачётПредоплаты.Ссылка, ЗачётПредоплаты.Организация, ВЫБОР КОГДА СтавкиНДС.СтавкаНДС = &Ст18 ТОГДА "НДС" ИНАЧЕ "" КОНЕЦ ИЗ Документ.ЗачетПредоплаты_РСБУ КАК ЗачётПредоплаты ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЗачётПредоплаты.Ссылка, ЗачётПредоплаты.КонтрагентСубконто3 КАК Номенклатура, ЗачётПредоплаты.КонтрагентСубконто3.СтавкаНДС КАК СтавкаНДС ИЗ Документ.ЗачетПредоплаты_РСБУ КАК ЗачётПредоплаты) КАК СтавкиНДС ПО ЗачётПредоплаты.Ссылка = СтавкиНДС.Ссылка И ЗачётПредоплаты.КонтрагентСубконто3 = СтавкиНДС.Номенклатура ГДЕ ЗачётПредоплаты.Проведен = ИСТИНА И ЗачётПредоплаты.Дата МЕЖДУ &НачалоПериода И &КонецПериода И ЗачётПредоплаты.КонтрагентСчет В ИЕРАРХИИ(&Счета62) СГРУППИРОВАТЬ ПО ЗачётПредоплаты.КонтрагентСубконто3, ЗачётПредоплаты.Ссылка, ЗачётПредоплаты.Организация И выполнение условия по "КОГДА СтавкиНДС.СтавкаНДС = &Ст18 ТОГДА "НДС"" не может быть выполнено поскольку "Поле СтавкиНДС.СтавкаНДС не входит в группу" Конечно, можно было бы добавить это поле в группировку, но: а) оно мне там не нужно б) придётся весь запрос (ну очень некислых размеров) переписывать. Варианты есть иные? Так чтобы на ёлку влезть и не поцарапаться. |
6 |
||
1
ZanderZ
01.10.11
✎
04:01
|
сделай подзапрос
|
2 |
||
2
IKSparrow
01.10.11
✎
10:42
|
(1) Так сделал же - вон где левое соединение. Мне это долбанное поле нужно только для выполнения условия. А не пашет такой вариант.
|
3 |
||
3
Пол Ньюман
01.10.11
✎
10:43
|
(2) Поле которое не пашет должно быть внутри подзапроса
|
|||
4
IKSparrow
01.10.11
✎
11:26
|
Так вот же оно! Это подзапрос.
ВЫБРАТЬ ЗачётПредоплаты.Ссылка, ЗачётПредоплаты.КонтрагентСубконто3 КАК Номенклатура, ЗачётПредоплаты.КонтрагентСубконто3.СтавкаНДС КАК СтавкаНДС ИЗ Документ.ЗачетПредоплаты_РСБУ КАК ЗачётПредоплаты Поле СтавкаНДС! Или я что-то не догоняю?:( |
|||
5
Пол Ньюман
01.10.11
✎
11:29
|
Редкостный идиот
ВЫБОР КОГДА СтавкиНДС.СтавкаНДС = &Ст18 ТОГДА "НДС" ИНАЧЕ "" КОНЕЦ у тебя внутри подзапроса? |
|||
6
dmpl
01.10.11
✎
11:38
|
(0) Ну а для чего тогда вообще это поле вычисляется? Вообще вариантов 2: либо включать в СГРУППИРОВАТЬ ПО, либо брать МАКСИМУМ().
|
7 10 |
||
7
dmpl
01.10.11
✎
11:39
|
(6) Сделать вот так:
|
|||
8
Пол Ньюман
01.10.11
✎
11:40
|
Мне кажется человек просто не понимает смысла СГРУППИРОВАТЬ, возможно путает с ИТОГИ
|
|||
9
vde69
01.10.11
✎
11:41
|
конструкторор запросов придумали трусы :)
|
|||
10
IKSparrow
01.10.11
✎
21:45
|
(6) Там просто НДС либо вычисляется либо не вычисляется. В зависимости от ставки НДС у номенклатуры.
Т.е. запрос так выглядит: ВЫБРАТЬ ЗачётПредоплаты.КонтрагентСубконто3, СУММА(-ЗачётПредоплаты.Сумма), ВЫБОР КОГДА СтавкиНДС.СтавкаНДС = &Ст18 ТОГДА ВЫРАЗИТЬ(СУММА(-ЗачётПредоплаты.Сумма)/118*18 КАК ЧИСЛО(18,2)) ИНАЧЕ 0, 0, ЗачётПредоплаты.Ссылка, ЗачётПредоплаты.Организация |
11 |
||
11
dmpl
02.10.11
✎
23:17
|
(10) Тогда это выражение просто в СУММА() поместить.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |