Имя: Пароль:
1C
1C 7.7
v7: Прямые запросы. Итоги
,
0 poligraf
 
18.08.16
10:41
В прямых запросах totals работает?

Как мне собрать итоги по нужным измерениям?
1 Это_mike
 
18.08.16
10:56
а зачем для этого totals?
2 Это_mike
 
18.08.16
10:58
чего не хватает в
sum()
group by
?
3 Chum
 
18.08.16
10:58
Не проще выгрузить результат в индексированную таблицу, а потом сгруппировать?
4 Ёпрст
 
18.08.16
10:59
(0) работает
5 Это_mike
 
18.08.16
10:59
(3) зачем?
6 Chum
 
18.08.16
11:00
(5) ну фиг знает что полиграфу надо в итоге, а тут готовое дерево с промитогами
7 Это_mike
 
18.08.16
11:07
(6) угу, хз чо надо...
может, чуваку просто не терпится ключевое слово totals применить...
8 poligraf
 
18.08.16
11:07
(2) group_by, видимо не научился толком пользоваться...

SELECT $РеализацияСтроки.Номенклатура [Номенклатура $Справочник.Номенклатура]
    , $РеализацияСтроки.Количество Количество
    , ПартииНаличиеОстатки.Партия [ПартииНаличиеОстаткиПартия $Справочник.Партии]
    , ПартииНаличиеОстатки.КоличествоОстаток
    , ПартииНаличиеОстатки.СуммаУпрОстаток
    , $Партии.ПриходныйДокумент [ПриходныйДокумент $Документ]
FROM $ДокументСтроки.Реализация AS РеализацияСтроки With (NOLOCK)
    LEFT OUTER JOIN $РегистрОстатки.ПартииНаличие(,
        RIGHT OUTER JOIN $ДокументСтроки.Реализация AS РеализацияСтроки With (NOLOCK) ON $РеализацияСтроки.Номенклатура = Номенклатура,
        (РеализацияСтроки.IDDOC = :Документ)
        AND (Фирма = :Фирма),
        (Партия, Номенклатура),
        (Количество, СуммаУпр)) AS ПартииНаличиеОстатки ON $РеализацияСтроки.Номенклатура = ПартииНаличиеОстатки.Номенклатура
    LEFT OUTER JOIN $Справочник.Партии AS Партии With (NOLOCK) ON ПартииНаличиеОстатки.Партия = Партии.ID
WHERE (РеализацияСтроки.IDDOC = :Документ)
    AND (ПартииНаличиеОстатки.КоличествоОстаток > 0)
9 poligraf
 
18.08.16
11:09
Вот такой запрос...

С group_by превращается в

SELECT $РеализацияСтроки.Номенклатура [Номенклатура $Справочник.Номенклатура]
    , Sum(ПартииНаличиеОстатки.КоличествоОстаток) СуммаКоличествоОстаток
    , Max($РеализацияСтроки.Количество) МаксимумКоличество
FROM $ДокументСтроки.Реализация AS РеализацияСтроки With (NOLOCK)
    LEFT OUTER JOIN $РегистрОстатки.ПартииНаличие(,
        RIGHT OUTER JOIN $ДокументСтроки.Реализация AS РеализацияСтроки With (NOLOCK) ON $РеализацияСтроки.Номенклатура = Номенклатура,
        (РеализацияСтроки.IDDOC = :Документ)
        AND (Фирма = :Фирма),
        (Номенклатура, Партия),
        Количество) AS ПартииНаличиеОстатки ON $РеализацияСтроки.Номенклатура = ПартииНаличиеОстатки.Номенклатура
    LEFT OUTER JOIN $Справочник.Партии AS Партии With (NOLOCK) ON ПартииНаличиеОстатки.Партия = Партии.ID
WHERE (РеализацияСтроки.IDDOC = :Документ)
    AND (ПартииНаличиеОстатки.КоличествоОстаток > 0)
GROUP BY ALL $РеализацияСтроки.Номенклатура
10 Ёпрст
 
18.08.16
11:09
(8) в топку
11 poligraf
 
18.08.16
11:10
Поля не участвующие в группировках - убираются.

Или мне надо тогда еще вложенный запрос создавать, чтобы положить итоги по каждому складу
Временных таблиц же нет...
12 Ёпрст
 
18.08.16
11:10
(11) для начала, нужно всё удалить.
13 Это_mike
 
18.08.16
11:11
(10) автора?
14 Зая Бусечка
 
18.08.16
11:11
(11) Где нет временных таблиц?
А вообще, какая субда?
15 Ёпрст
 
18.08.16
11:11
(13) Не, еретиков на костёр, обычно :)
16 Ёпрст
 
18.08.16
11:12
(14) судя по синтаксису - sql
17 Ёпрст
 
18.08.16
11:13
ибо для фокса, нет  ВТ $РегистрОстатки., и синтаксис , явно не из класса какого-нибудь
18 Ёпрст
 
18.08.16
11:14
А условия в виртуальной табличке, вообще агонь :)
19 Ёпрст
 
18.08.16
11:17
ну и смотреть итоги регистра на ТА, для произвольного документа - это тоже, как бэ не верно, совсем.
20 Ёпрст
 
18.08.16
11:18
+ смотреть $РеализацияСтроки.Количество, если это типовая, тоже, ибо есть $РеализацияСтроки.Коэффициент, если че.
21 Ёпрст
 
18.08.16
11:18
Делать правое соединение в ВТ не надо
22 poligraf
 
18.08.16
11:19
(18) это еще не окончательный запрос, тренируюсь.
Конструктор дает именно так, потом перепишу
23 Ёпрст
 
18.08.16
11:19
(22) конструктор, даёт тебе right join ?
24 Это_mike
 
18.08.16
11:20
(22) "тренируйся... о, на кошках!"©ОперацияЫ