|
Итоги рассчитывать по значению поля | ☑ | ||
---|---|---|---|---|
0
ksuk
14.06.16
✎
10:48
|
Есть простой запрос:
ВЫБРАТЬ дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента КАК СчетФактураСуммаДокумента, СУММА(дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот) КАК СуммаБезНДСОборот ИЗ РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты СГРУППИРОВАТЬ ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента, дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура ИТОГИ СУММА(СчетФактураСуммаДокумента), СУММА(СуммаБезНДСОборот) ПО ОБЩИЕ Как сделать, чтобы Общий итог поля СчетФактураСуммаДокумента суммировался один раз для одного значения СчетФактура? Т.е. вместо (Сумма1 + Сумма1) по таблице СФ 1 Сумма1 СФ 1 Сумма1 получить просто Сумма1??? |
|||
1
HardBall
14.06.16
✎
10:56
|
НЕ используй итоги.
|
|||
2
ksuk
14.06.16
✎
11:12
|
(1) Но мне нужно посчитать сумму всех СФ. То есть получить Общие итоги по Различным счетам-фактурам
|
|||
3
ksuk
14.06.16
✎
11:13
|
Притом, что в СКД нужный мне результат я получаю , если использую 2 Набора данных. В одном мой запрос с Номером строки, в другом сводная таблица - СФ СуммаСФ. При их соединении общие итоги по Сумма СФ считаются именно по различным значениям СФ.
|
|||
4
HardBall
14.06.16
✎
11:19
|
Зачем номер строки?
|
|||
5
HardBall
14.06.16
✎
11:21
|
Тебе надо получить из Регистра оборотов максимально сгруппированные строки.
|
|||
6
ksuk
14.06.16
✎
12:32
|
Номер строки - условное поле. Вместо него может быть любая другая группировка. Суть в том, что в результате запроса должна получиться таблица, в которой несколько строк с одним и тем же СФ. А в итогах должна быть сумма именно по разным СФ, чтобы строки по одному не задваивали его сумму.
|
|||
7
ksuk
14.06.16
✎
12:33
|
Например, вместо Номера строки может быть Ставка НДС, Вид ценности, Товар
|
|||
8
HardBall
14.06.16
✎
12:44
|
Сделай 2-мя запросами.
1.Сначала получи дсНДСЗаписиКнигиПокупокОбороты.СчетФактура и СУММА(дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот) КАК СуммаБезНДСОборот. 2.Потом из этой таблицы выбери все что тебе надо и получи итоги. |
|||
9
ksuk
14.06.16
✎
12:47
|
И как получится, что по полю Сумма документа будет считаться итог, как мне надо?
|
|||
10
ksuk
14.06.16
✎
12:49
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента КАК СуммаДокумента ПОМЕСТИТЬ СФ_Сумма ИЗ РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты СГРУППИРОВАТЬ ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура КАК СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот КАК СуммаБезНДСОборот, СУММА(СФ_Сумма.СуммаДокумента) КАК СуммаДокумента ИЗ РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты ЛЕВОЕ СОЕДИНЕНИЕ СФ_Сумма КАК СФ_Сумма ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура = СФ_Сумма.СчетФактура СГРУППИРОВАТЬ ПО дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот ИТОГИ СУММА(СуммаБезНДСОборот), СУММА(СуммаДокумента) ПО ОБЩИЕ, НомерСтроки, СчетФактура |
|||
11
ksuk
14.06.16
✎
12:50
|
В первом пакете получаю таблицу, итог по которой дал бы нужный мне результат. Потом соединяю ее с полной таблицей. Но в итогах все равно не то - просто сумма по всем строкам, независимо от значения СФ.
|
|||
12
HardBall
14.06.16
✎
13:08
|
У тебя все наоборот.
1.В первом запросе получай СФ и СуммаБезНДСОборот. Эта таблица группируется по СФ. 2.Во втором СФ, СФ.СуммаДокумента, СуммаБезНДСОборот и выводи итоги |
|||
13
ksuk
14.06.16
✎
13:14
|
(12)
ВЫБРАТЬ РАЗЛИЧНЫЕ дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки, СУММА(дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот) КАК СуммаБезНДСОборот ПОМЕСТИТЬ СФ_Сумма ИЗ РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты СГРУППИРОВАТЬ ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СФ_Сумма.СчетФактура, СФ_Сумма.НомерСтроки, СФ_Сумма.СуммаБезНДСОборот КАК СуммаБезНДСОборот, СФ_Сумма.СчетФактура.СуммаДокумента КАК СчетФактураСуммаДокумента ИЗ СФ_Сумма КАК СФ_Сумма ИТОГИ СУММА(СуммаБезНДСОборот), СУММА(СчетФактураСуммаДокумента) ПО ОБЩИЕ Это , как я понимаю, наоборот. |
|||
14
ksuk
14.06.16
✎
13:15
|
В итогах все равно сумма по всем строкам((.
|
|||
15
ksuk
14.06.16
✎
13:17
|
"СчетФактура = &СФ" - условие, просто для выборки, на самом деле его нет.
|
|||
16
HardBall
14.06.16
✎
13:19
|
Номер строки убери.
ВЕЗДЕ |
|||
17
ksuk
14.06.16
✎
13:20
|
Да нужен он мне!
|
|||
18
catena
14.06.16
✎
13:21
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, Среднее(дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента)/Количество(дсНДСЗаписиКнигиПокупокОбороты.СчетФактура) КАК СуммаДокумента ПОМЕСТИТЬ СФ_Сумма ИЗ РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты СГРУППИРОВАТЬ ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура КАК СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот КАК СуммаБезНДСОборот, СУММА(СФ_Сумма.СуммаДокумента) КАК СуммаДокумента ИЗ РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты ЛЕВОЕ СОЕДИНЕНИЕ СФ_Сумма КАК СФ_Сумма ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура = СФ_Сумма.СчетФактура СГРУППИРОВАТЬ ПО дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот ИТОГИ СУММА(СуммаБезНДСОборот), СУММА(СуммаДокумента) ПО ОБЩИЕ, НомерСтроки, СчетФактура |
|||
19
catena
14.06.16
✎
13:22
|
Различные в первом запросе убрать
|
|||
20
ksuk
14.06.16
✎
13:24
|
Спасибо, хорошее решение. Если б не округление.
|
|||
21
catena
14.06.16
✎
13:24
|
Даже так:
Выбрать дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, Среднее(дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента)/Сумма(дсНДСЗаписиКнигиПокупокОбороты.Кол) КАК СуммаДокумента из(ВЫБРАТЬ дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура.СуммаДокумента КАК СуммаДокумента, 1 как Кол ПОМЕСТИТЬ СФ_Сумма ИЗ РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты ) КАК дсНДСЗаписиКнигиПокупокОбороты СГРУППИРОВАТЬ ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки КАК НомерСтроки, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура КАК СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот КАК СуммаБезНДСОборот, СУММА(СФ_Сумма.СуммаДокумента) КАК СуммаДокумента ИЗ РегистрНакопления.дсНДСЗаписиКнигиПокупок.Обороты(&ДатаНач, &датаКон, Запись, СчетФактура = &СФ) КАК дсНДСЗаписиКнигиПокупокОбороты ЛЕВОЕ СОЕДИНЕНИЕ СФ_Сумма КАК СФ_Сумма ПО дсНДСЗаписиКнигиПокупокОбороты.СчетФактура = СФ_Сумма.СчетФактура СГРУППИРОВАТЬ ПО дсНДСЗаписиКнигиПокупокОбороты.НомерСтроки, дсНДСЗаписиКнигиПокупокОбороты.СчетФактура, дсНДСЗаписиКнигиПокупокОбороты.СуммаБезНДСОборот ИТОГИ СУММА(СуммаБезНДСОборот), СУММА(СуммаДокумента) ПО ОБЩИЕ, НомерСтроки, СчетФактура |
|||
22
ksuk
14.06.16
✎
13:41
|
Спасибо,catena, так и сделаю!
|
|||
23
HardBall
14.06.16
✎
13:42
|
С итогами по общие не получится.
Итоги по СФ СУММА(СуммаДокумента) |
|||
24
ksuk
14.06.16
✎
14:28
|
Почему не получится? Получается по строкам мы получаем не Сумму документа, а сумму/количество строк и в итогах как раз нужное значение. А в строку придется вытащить Сумму документа другим полем. Пока нет других идей - возьму эту.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |