|
Помогите с запросом, суммирование табличной части документа | ☑ | ||
---|---|---|---|---|
0
BoshIT
08.11.12
✎
06:46
|
Доброе время суток!
1Cv82 БУХ 2.0 Есть документ поступления, добавлена табличная часть ОтработанныеНакладные. Идея в том что если сумма строк ПоступлениеТоваровУслуг.ОтработанныеНакладые.количество и сумма строк ПоступлениеТоваровУслуг.Товары.Количество отличается то выбираем этот документ. вот текст запроса ВЫБРАТЬ ЕСТЬNULL(СУММА(ПоступлениеТоваровУслугОтработанныеНакладные.Количество), 0) КАК Поле1, ЕСТЬNULL(СУММА(ПоступлениеТоваровУслугТовары.Количество), 0) КАК Количество1, ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслуг.Ссылка ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслуг.Ссылка ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.ОтработанныеНакладные КАК ПоступлениеТоваровУслугОтработанныеНакладные ПО (ПоступлениеТоваровУслугОтработанныеНакладные.Ссылка = ПоступлениеТоваровУслуг.Ссылка) ГДЕ ПоступлениеТоваровУслуг.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслуг.Ссылка, ПоступлениеТоваровУслугТовары.Номенклатура, ПоступлениеТоваровУслугОтработанныеНакладные.Количество он не суммироет все строчки в табличной части((( что я делаю не так? |
|||
1
Wobland
08.11.12
✎
06:53
|
(0) представь себе, что товаров не будет вообще..
|
|||
2
BoshIT
08.11.12
✎
06:56
|
да нет выводит)
180 ДЛ-0,2-62 вид 1 Поступление товаров и услуг не св. от 09.08.2012 9:00:01 120,446 ДЛ-0,2-62 вид 1 Поступление товаров и услуг не св. от 09.08.2012 9:00:01 58,098 372,699 ДТ ЕВРО сорт С, вид 1 (летнее, сера до 0,035 %) Поступление товаров и услуг 527 от 25.04.2012 9:00:01 62,798 372,699 ДТ ЕВРО сорт С, вид 1 (летнее, сера до 0,035 %) Поступление товаров и услуг 527 от 25.04.2012 9:00:01 62,422 372,699 ДТ ЕВРО сорт С, вид 1 (летнее, сера до 0,035 %) Поступление товаров и услуг 527 от 25.04.2012 9:00:01 62,649 372,699 ДТ ЕВРО сорт С, вид 1 (летнее, сера до 0,035 %) Поступление товаров и услуг 527 от 25.04.2012 9:00:01 62,252 372,699 ДТ ЕВРО сорт С, вид 1 (летнее, сера до 0,035 %) Поступление товаров и услуг 527 от 25.04.2012 9:00:01 64,48 372,699 ДТ ЕВРО сорт С, вид 1 (летнее, сера до 0,035 %) Поступление товаров и услуг 527 от 25.04.2012 9:00:01 вот только первую колонку он должен был просуммировать, а что то не как((( |
|||
3
perec1982
08.11.12
✎
06:56
|
"ВЫБРАТЬ
| ВложенныйЗапрос.Ссылка |ИЗ | (ВЫБРАТЬ | СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество, | СУММА(ПоступлениеТоваровУслугУслуги.Количество) КАК Количество1, | ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка | ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.ОтработанныеНакладые КАК ПоступлениеТоваровУслугУслуги | ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслугУслуги.Ссылка | ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент | | СГРУППИРОВАТЬ ПО | ПоступлениеТоваровУслугТовары.Ссылка) КАК ВложенныйЗапрос |ГДЕ | ВложенныйЗапрос.Количество <> ВложенныйЗапрос.Количество1" |
|||
4
perec1982
08.11.12
✎
06:56
|
примерно так мне кажется
|
|||
5
BoshIT
08.11.12
✎
06:57
|
получается так ,
первая колонка должна быть сумма с ПоступлениеТоваровУслугОтработанныеНакладные.Количество вторая ПоступлениеТоваровУслугТовары.Количество, третия номенклатура, и четвертая документ движения |
|||
6
perec1982
08.11.12
✎
06:57
|
Только вместо ТЧ Услуги ОтработанныеНакладые
|
|||
7
BoshIT
08.11.12
✎
07:01
|
(3)
теже грабли, попадают документы где Количество и Количество1 равны((( хотя по условию отбора не должны быть равны |
|||
8
perec1982
08.11.12
✎
07:02
|
(7)Количество и Количество1 это итоговые кол. ТЧ?
|
|||
9
BoshIT
08.11.12
✎
07:03
|
(8) угу
|
|||
10
perec1982
08.11.12
✎
07:05
|
Ну тогда ты врешь, такго не может быть. Мой код идеален))).
Отладь запрос консолью |
|||
11
perec1982
08.11.12
✎
07:07
|
Вытащи вложенный запрос, он должен выдавать примерно так:
Ссылка Кол Кол1 Ссылка1 100 500 Ссылка2 120 120 ... |
|||
12
BoshIT
08.11.12
✎
07:11
|
ВЫБРАТЬ
СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество, СУММА(ПоступлениеТоваровУслугУслуги.Количество) КАК Количество1, ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.ОтработанныеНакладные КАК ПоступлениеТоваровУслугУслуги ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслугУслуги.Ссылка ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Ссылка а вот ответ 536,352 178,784 Поступление товаров и услуг 545 от 11.05.2012 9:00:01 1 532,055 306,413 Поступление товаров и услуг 546 от 11.05.2012 9:00:01 247,816 123,908 Поступление товаров и услуг 547 от 11.05.2012 9:00:01 2 236,194 372,699 Поступление товаров и услуг 527 от 25.04.2012 9:00:01 первая колонка вообще от балды) на этом контрагенте первая и вторая колонка одинаковые))) |
|||
13
perec1982
08.11.12
✎
07:17
|
"ВЫБРАТЬ
| ВложенныйЗапрос.Ссылка |ИЗ | (ВЫБРАТЬ | СУММА(ПоступлениеТоваровУслугТовары.Количество) КАК Количество, | ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка | ИЗ | Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары | ГДЕ | ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент | | СГРУППИРОВАТЬ ПО | ПоступлениеТоваровУслугТовары.Ссылка) КАК ВложенныйЗапрос | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | СУММА(ПоступлениеТоваровУслугУслуги.Количество) КАК Количество, | ПоступлениеТоваровУслугУслуги.Ссылка КАК Ссылка | ИЗ | Документ.ПоступлениеТоваровУслуг.Услуги КАК ПоступлениеТоваровУслугУслуги | ГДЕ | ПоступлениеТоваровУслугУслуги.Ссылка.Контрагент = &Контрагент | | СГРУППИРОВАТЬ ПО | ПоступлениеТоваровУслугУслуги.Ссылка) КАК ВложенныйЗапрос1 | ПО ВложенныйЗапрос.Ссылка = ВложенныйЗапрос1.Ссылка | И ВложенныйЗапрос.Количество <> ВложенныйЗапрос1.Количество" |
|||
14
perec1982
08.11.12
✎
07:18
|
Имя тч замени
|
|||
15
BoshIT
08.11.12
✎
07:25
|
получилось так
ВЫБРАТЬ ВложенныйЗапрос.Ссылка ИЗ (ВЫБРАТЬ СУММА(ЕСТЬNULL(ПоступлениеТоваровУслугТовары.Количество,0)) КАК Количество, ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Ссылка) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(ЕСТЬNULL(ПоступлениеТоваровУслугУслуги.Количество,0)) КАК Количество, ПоступлениеТоваровУслугУслуги.Ссылка КАК Ссылка ИЗ Документ.ПоступлениеТоваровУслуг.ОтработанныеНакладные КАК ПоступлениеТоваровУслугУслуги ГДЕ ПоступлениеТоваровУслугУслуги.Ссылка.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугУслуги.Ссылка) КАК ВложенныйЗапрос1 ПО ВложенныйЗапрос.Ссылка = ВложенныйЗапрос1.Ссылка И ВложенныйЗапрос.Количество <> ВложенныйЗапрос1.Количество но если ОтработанныеНакладные пусто, то не выводит ничего поставил ЕСТЬNULL чтоб был 0, но все равно не работает( |
|||
16
BoshIT
08.11.12
✎
07:31
|
ВЫБРАТЬ
ВложенныйЗапрос.Ссылка, ВложенныйЗапрос.Количество, ВложенныйЗапрос1.Количество ИЗ (ВЫБРАТЬ СУММА(ЕСТЬNULL(ПоступлениеТоваровУслугТовары.Количество,0)) КАК Количество, ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Ссылка) КАК ВложенныйЗапрос ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(ЕСТЬNULL(ПоступлениеТоваровУслугУслуги.Количество,0)) КАК Количество, ПоступлениеТоваровУслугУслуги.Ссылка КАК Ссылка ИЗ Документ.ПоступлениеТоваровУслуг.ОтработанныеНакладные КАК ПоступлениеТоваровУслугУслуги ГДЕ ПоступлениеТоваровУслугУслуги.Ссылка.Контрагент = &Контрагент СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугУслуги.Ссылка) КАК ВложенныйЗапрос1 ПО ВложенныйЗапрос.Ссылка = ВложенныйЗапрос1.Ссылка И ВложенныйЗапрос.Количество <> ВложенныйЗапрос1.Количество вот так вот выводит все красиво) но есть одно но! если в документе тч ОтработанныеНакладные не заполненно, то не выводит ничего |
|||
17
perec1982
08.11.12
✎
07:34
|
Значит соединение поменяй на левое
|
|||
18
BoshIT
08.11.12
✎
07:37
|
отлично) все фурычит)
я дундук)) признаю Спасибки |
|||
19
BoshIT
08.11.12
✎
09:08
|
не все так просто как казалось((((
добавил отбор по дате и все сломалось( ВЫБРАТЬ ВложенныйЗапрос.Ссылка, ВложенныйЗапрос.Контрагент, ВложенныйЗапрос.Количество, ВложенныйЗапрос1.Количество ИЗ (ВЫБРАТЬ СУММА(ЕСТЬNULL(ПоступлениеТоваровУслугТовары.Количество,0)) КАК Количество, ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка, ПОступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ // ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Контрагент И ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачало И &ДатаКонец СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Ссылка) КАК ВложенныйЗапрос ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ СУММА(ЕСТЬNULL(ПоступлениеТоваровУслугУслуги.Количество,0)) КАК Количество, ПоступлениеТоваровУслугУслуги.Ссылка КАК Ссылка, ПоступлениеТоваровУслугУслуги.Ссылка КАК Контрагент ИЗ Документ.ПоступлениеТоваровУслуг.ОтработанныеНакладные КАК ПоступлениеТоваровУслугУслуги ГДЕ // ПоступлениеТоваровУслугУслуги.Ссылка.Контрагент=&Контрагент И ПоступлениеТоваровУслугУслуги.Ссылка.Дата МЕЖДУ &ДатаНачало И &ДатаКонец СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугУслуги.Ссылка) КАК ВложенныйЗапрос1 ПО ВложенныйЗапрос.Ссылка = ВложенныйЗапрос1.Ссылка И ВложенныйЗапрос.Количество <> ВложенныйЗапрос1.Количество даже вот казалось бы простой запрос и тот не работает ВЫБРАТЬ СУММА(ЕСТЬNULL(ПоступлениеТоваровУслугТовары.Количество, 0)) КАК Количество, ПоступлениеТоваровУслугТовары.Ссылка КАК Ссылка, ПоступлениеТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНачало И &ДатаКонец СГРУППИРОВАТЬ ПО ПоступлениеТоваровУслугТовары.Ссылка, ПоступлениеТоваровУслугТовары.Ссылка.Контрагент что я делаю не так(((? |
|||
20
BoshIT
08.11.12
✎
09:21
|
я что то вообще не понимаю тогда
а тут то что не так?????? ВЫБРАТЬ ДокументПоступление.ссылка как Документ ИЗ Документ.ПоступлениеТоваровУслуг КАК ДокументПоступление ГДЕ ДокументПоступление.Дата МЕЖДУ &ДатаНачало И &ДатаКонец |
|||
21
hhhh
08.11.12
✎
12:25
|
(20) что-то непонятно. Ну заведите в документе маленький реквизитик типа булево "КоличествоОтличается" и заполняйте его в процедуре ПередЗаписью() документа. Зачем вы каждый раз перелопачиваете эти табличные части? У вас слишком мощный сервер, ему работы не хватает?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |