Имя: Пароль:
1C
 
Какая-то хрень в суммировании строк в пустом подзапросе
,
0 toypaul
 
гуру
18.07.16
08:42
Есть такой запрос

    |ВЫБРАТЬ
    |    СУММА(ВложенныйЗапрос.План) КАК План,
    |    СУММА(ВложенныйЗапрос.Постановка) КАК Постановка,
    |    СУММА(ВложенныйЗапрос.Тестирование) КАК Тестирование
    |ИЗ
    |    (ВЫБРАТЬ
    |        Постановки.ТрудозатратыПлан КАК План,
    |        Постановки.Трудозатраты КАК Постановка,
    |        0 КАК Тестирование,
    |        Постановки.Ссылка КАК Ссылка
    |    ИЗ
    |        Постановки КАК Постановки
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        0,
    |        0,
    |        Тестирование.Трудозатраты,
    |        Тестирование.Ссылка
    |    ИЗ
    |        Тестирование КАК Тестирование) КАК ВложенныйЗапрос";

если убрать верхнее суммирование, то запрос ничего не возвращает. а если оставить так, то запрос возвращает одну строку с NULL по всех полях. это у меня глюк в башке или аналогичный Т-СКЛ так бы и сработал?
1 Горогуля
 
18.07.16
08:50
где-то ты врёшь
2 toypaul
 
гуру
18.07.16
08:50
Ну. спецы по Т-СКЛ :) ? Или это 1С-ный прикол?
3 Fedor-1971
 
18.07.16
08:51
(0) IsNull(ВложенныйЗапрос.План,0) - для всех твоих сумм
и проверь в консоли запросов что возвращает выборка из скобок
4 toypaul
 
гуру
18.07.16
08:52
(2) ну это без базара сделал. раз такая фигня.

а запрос без скобок говорю же ничего не возвращает.
5 toypaul
 
гуру
18.07.16
08:52
(3) и кстати не так надо делать, а только так сработало

ЕстьNULL(Сумма(бла-бла),0)
6 Горогуля
 
18.07.16
08:53
всё на месте:

ВЫБРАТЬ
    СУММА(ВложенныйЗапрос.План) КАК План,
    СУММА(ВложенныйЗапрос.Постановка) КАК Постановка,
    СУММА(ВложенныйЗапрос.Тестирование) КАК Тестирование
ИЗ
    (ВЫБРАТЬ
        0 КАК План,
        0 КАК Постановка,
        0 КАК Тестирование,
        "Постановки.Ссылка" КАК Ссылка
    
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
        0,
        0,
        0,
        "Тестирование.Ссылка") КАК ВложенныйЗапрос
7 Fedor-1971
 
18.07.16
08:54
(4)
ВЫБРАТЬ
    |        Постановки.ТрудозатратыПлан КАК План,
    |        Постановки.Трудозатраты КАК Постановка,
    |        0 КАК Тестирование,
    |        Постановки.Ссылка КАК Ссылка
    |    ИЗ
    |        Постановки КАК Постановки
    |    
    |    ОБЪЕДИНИТЬ ВСЕ
    |    
    |    ВЫБРАТЬ
    |        0,
    |        0,
    |        Тестирование.Трудозатраты,
    |        Тестирование.Ссылка
    |    ИЗ
    |        Тестирование КАК Тестирование

Вот это что возвращает? сколько строк? проверяй, иначе суммировать просто нечего
8 toypaul
 
гуру
18.07.16
08:54
(7) НИ ЧЕ ГО
9 toypaul
 
гуру
18.07.16
08:55
(6) олё. меня слышно или как?
10 Fedor-1971
 
18.07.16
08:56
(8) Сумма НИЧЕГО чем отличается от Null?
11 toypaul
 
гуру
18.07.16
08:56
видимо это прикол Т-СКЛ такой что ли ... если суммировать "НИЧЕГО", то возвращает в одной строке НУЛЛ.
12 toypaul
 
гуру
18.07.16
08:57
(10) как бэ логичнее вернуть нисколько строк. чем такая подстава. нет?
13 Горогуля
 
18.07.16
08:57
(9) кто здесь?
14 Горогуля
 
18.07.16
08:58
(12) агрегатная функция, накладенная на нисколько строк, должна-таки вернуть результатом хоть что-то
15 Fedor-1971
 
18.07.16
09:04
(11) т.е. в "настоящем" SQL ничего не вернётся? А вот это уже подстава - не понятно отработала функция или нет, была пустая выборка или глюк вычисления суммы.
16 В тылу врага
 
18.07.16
09:07
(11) это документированное поведение SQL
17 toypaul
 
гуру
18.07.16
09:12
(16) ясно
18 aleks_default
 
18.07.16
10:00
(16) +1
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший