|
суммировать результаты запроса | ☑ | ||
---|---|---|---|---|
0
DrunkWolf
19.09.11
✎
10:34
|
в запросе берутся след. данные:
НомерДока, НомерКонтейнера, КолМест, Товар, КолТовара. Первые 3 реквизита берутся из шапки, другие из табл.части.Соответсвенно результат запроса может быть таким: НомерДока НомерКонтейнера КолМест Товар КолТовара 0001 12 30 редиска 20 0001 12 30 петрушка 40 0002 11 25 хрен 10 0002 11 25 репа 15 Как мне в ИТОГО по реквизиту КолМест суммировать данные взятые только из разных документов (а не построчно) Т.е. чтобы в итого по 3-му реквизиту получилось не 110 (30+30+25+25), а 55 (30+25) Отчетик на СКД кстати... |
|||
1
Defender aka LINN
19.09.11
✎
10:36
|
2 набора данных
|
|||
2
mikecool
19.09.11
✎
10:42
|
а просто сгруппировать не?
|
|||
3
DrunkWolf
19.09.11
✎
11:19
|
(1) подробней пжл..
|
|||
4
DrunkWolf
19.09.11
✎
11:20
|
(2) и об этом тоже))
|
|||
5
DrunkWolf
20.09.11
✎
09:15
|
Поднимаю...
|
|||
6
butterbean
20.09.11
✎
09:17
|
(5) сделай через ОБЪЕДИНИТЬ - сначала все из шапки выбери, а потом из таб части, в ИТОГО просуммируешь
|
|||
7
mikeA
20.09.11
✎
09:31
|
(0) КолМест - это по всему документу или по товару?
|
|||
8
DrunkWolf
20.09.11
✎
09:35
|
сейчас запрос такой:
ВЫБРАТЬ ТранспортныеОстатки.СчетТранспорт.Ответственный КАК Ответственный, ТранспортныеОстатки.Поставщик КАК Поставщик, ТранспортныеОстатки.СчетТранспорт.Откуда КАК Откуда, ТранспортныеОстатки.Перевозчик КАК Перевозчик, ТранспортныеОстатки.СчетТранспорт.НомерВагона КАК НомерВагона, ТранспортныеОстатки.СчетТранспорт.НомерКонтейнера КАК НомерКонтейнера, ТранспортныеОстатки.СчетТранспорт.Скорость КАК Скорость, ТранспортныеОстатки.СчетТранспорт.КоличествоМест КАК Мест, ВЫБОР КОГДА ТранспортныеОстатки.СчетТранспорт.ОбъемВКг = ИСТИНА ТОГДА ТранспортныеОстатки.СчетТранспорт.Объем ИНАЧЕ NULL КОНЕЦ КАК ОбъемВКг, ВЫБОР КОГДА ТранспортныеОстатки.СчетТранспорт.ОбъемВКг = ЛОЖЬ ТОГДА ТранспортныеОстатки.СчетТранспорт.Объем ИНАЧЕ NULL КОНЕЦ КАК ОбъемВКуб, ТранспортныеОстатки.СчетТранспорт.ДатаОтгрузки КАК ДатаОтгрузки, ТранспортныеОстатки.СчетТранспорт.ВремяВПути КАК СчетТранспортВремяВПути, ТранспортныеОстатки.СчетТранспорт.ДатаПоступления КАК ДатаОжидаемогоПрихода, ПоступлениеТоваровУслугДокументыОснования.Ссылка.Дата КАК ДатаФактическогоПрихода, ТранспортныеОстатки.СчетТранспорт.Дней КАК Дней, ТранспортныеОстатки.СчетТранспорт.Дата КАК ДатаПроведенияВ1С, ТранспортныеОстатки.СуммаОборот КАК СуммаЗаТранспорт, ВЫРАЗИТЬ(ТранспортныеОстатки.СуммаОборот * 100 / ТранспортныеОстатки.Основание.СуммаДокумента КАК ЧИСЛО(15, 2)) КАК ПроцентТранспорт, ТранспортныеОстатки.Основание.СуммаДокумента КАК СтоимостьТовараПоНакладной, ТранспортныеОстатки.СчетТранспорт.Склад КАК Склад, ТранспортныеОстатки.НоменклатурнаяГруппа КАК ВидГруза ИЗ РегистрНакопления.Транспортные.Обороты(&ДатаНач, &ДатаКон, , ) КАК ТранспортныеОстатки ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.ДокументыОснования КАК ПоступлениеТоваровУслугДокументыОснования ПО ТранспортныеОстатки.Основание = ПоступлениеТоваровУслугДокументыОснования.СчетНаОплатуПоставщика Если я два разных запроса буду брать из ТранспортныеОстатки. не пойму, как это поможет мне суммировать итоги? |
|||
9
DrunkWolf
20.09.11
✎
09:35
|
(7)КолМест из документа..
|
|||
10
Axel2009
20.09.11
✎
09:44
|
запрос сходится с данными из (0) только в 1ом поле "НомерКонтейнера"
|
|||
11
DrunkWolf
20.09.11
✎
09:52
|
а ну да, это я упростил пример в (0), но суть та же, надо чтоб суммировал КолМест только те, что из разных доков..
|
|||
12
DrunkWolf
20.09.11
✎
09:52
|
т.е. в настоящем запросе просто Мест, прошу прощения за путаницу..
|
|||
13
Defender aka LINN
20.09.11
✎
10:32
|
Делай соединение двух наборов данных вместо соединения двух таблиц в запросе. Так понятно?
|
|||
14
Axel2009
20.09.11
✎
11:09
|
либо объединить, либо делить на количество строк. другого не дано
|
|||
15
Defender aka LINN
20.09.11
✎
12:19
|
(14) Дели. |
|||
16
Defender aka LINN
20.09.11
✎
12:19
|
+(15) И см (13)
|
|||
17
Axel2009
20.09.11
✎
12:24
|
30/2
25/3 в итоге сумма будет корректная |
|||
18
DrunkWolf
20.09.11
✎
12:43
|
У меня появилась идея...
сформированный запрос выгрузить в таблицуЗначений, у одной строчки оставить колМест, у других убирать, типо обнулить все значения кроме первого у КолМест, где они идут от одного дока а потом ТЗ запихать в СКД, как набор данных. |
|||
19
Axel2009
20.09.11
✎
12:53
|
(18) сделай как в (13). 1ска сама все сделает
|
|||
20
DrunkWolf
20.09.11
✎
12:59
|
То, что в запросе делается через ЛЕВОЕ СОЕДИНЕНИЕ не влияет на необходимый результат т.е. могла бы быть просто одна таблица ТранспортныеОстатки, вопрос в том, как правильно суммировать поле Мест, берущееся из нее.
|
|||
21
Axel2009
20.09.11
✎
13:01
|
в скд 2 набор данных
|
|||
22
Defender aka LINN
20.09.11
✎
13:29
|
(17) Ты не умничай, ты запрос покажи :)
(20) На НЕОБХОДИМЫЙ результат вообще ничего не влияет, кроме постановки задачи. А у тебя из-за левого соединения результат неправильный. |
|||
23
Axel2009
20.09.11
✎
13:30
|
(22) подсчитать количество записей по одной группе запрос показать?
|
|||
24
Defender aka LINN
20.09.11
✎
13:31
|
(23) Целиком показывай.
|
|||
25
DrunkWolf
21.09.11
✎
06:47
|
(22) запрос может быть и без соединения:
ВЫБРАТЬ ТранспортныеОстатки.СчетТранспорт.Ответственный КАК Ответственный, ТранспортныеОстатки.Поставщик КАК Поставщик, ТранспортныеОстатки.СчетТранспорт.Откуда КАК Откуда, ТранспортныеОстатки.Перевозчик КАК Перевозчик, ТранспортныеОстатки.СчетТранспорт.НомерВагона КАК НомерВагона, ТранспортныеОстатки.СчетТранспорт.НомерКонтейнера КАК НомерКонтейнера, ТранспортныеОстатки.СчетТранспорт.Скорость КАК Скорость, ТранспортныеОстатки.СчетТранспорт.КоличествоМест КАК Мест, ВЫБОР КОГДА ТранспортныеОстатки.СчетТранспорт.ОбъемВКг = ИСТИНА ТОГДА ТранспортныеОстатки.СчетТранспорт.Объем ИНАЧЕ NULL КОНЕЦ КАК ОбъемВКг, ВЫБОР КОГДА ТранспортныеОстатки.СчетТранспорт.ОбъемВКг = ЛОЖЬ ТОГДА ТранспортныеОстатки.СчетТранспорт.Объем ИНАЧЕ NULL КОНЕЦ КАК ОбъемВКуб, ТранспортныеОстатки.СчетТранспорт.ДатаОтгрузки КАК ДатаОтгрузки, ТранспортныеОстатки.СчетТранспорт.ВремяВПути КАК СчетТранспортВремяВПути, ТранспортныеОстатки.СчетТранспорт.ДатаПоступления КАК ДатаОжидаемогоПрихода, ТранспортныеОстатки.СчетТранспорт.Дней КАК Дней, ТранспортныеОстатки.СчетТранспорт.Дата КАК ДатаПроведенияВ1С, ТранспортныеОстатки.СуммаОборот КАК СуммаЗаТранспорт, ВЫРАЗИТЬ(ТранспортныеОстатки.СуммаОборот * 100 / ТранспортныеОстатки.Основание.СуммаДокумента КАК ЧИСЛО(15, 2)) КАК ПроцентТранспорт, ТранспортныеОстатки.Основание.СуммаДокумента КАК СтоимостьТовараПоНакладной, ТранспортныеОстатки.СчетТранспорт.Склад КАК Склад, ТранспортныеОстатки.НоменклатурнаяГруппа КАК ВидГруза ИЗ РегистрНакопления.Транспортные.Обороты(&ДатаНач, &ДатаКон, , ) КАК ТранспортныеОстатки Проблема с суммированием поля МЕСТ останется... |
|||
26
DrunkWolf
21.09.11
✎
07:54
|
ЛевоеСоединение делалается только для того, чтобы в отчете еще был один показатель ДатаФактическогоПрихода, но к данной проблеме это не отностися
|
|||
27
DrunkWolf
22.09.11
✎
13:18
|
(23)Сделал как (18), не совсем красиво вышло, так можно-ли запросом сделать?
|
|||
28
Byasha
22.09.11
✎
13:52
|
Корректнее всего получить через объединение. Я с аналогичной проблемой столкнулся. (Вот тут написано - v8: Найти ошибку в запросе В итоге получил то что нужно , но с объединением кучи запросов.
Расчет итогов 1С делает по всем записям попавшим в выборку данных, в том числе и по детальным, поэтому если в детальных записях есть строка с одиним и тем же значением поля, даже если по логике его суммировать не нужно, оно все равно суммируется. Как то так. |
|||
29
DrunkWolf
23.09.11
✎
06:41
|
В который раз слышу про Объединение, но не пойму как, дайте пример, чтоб хоть начать думать)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |