|   |   | 
| 
 | Страннное поведение запроса | ☑ | ||
|---|---|---|---|---|
| 0
    
        КУНГ ФУ 1С 19.11.12✎ 12:34 | 
        ТекстЗапроса = "
  |Выбрать | Т1.Субконто, | Т1.Сумма |ИЗ | &Таблица1 как Т1 |ПОМЕСТИТЬ | ВТ_Т1 |////////////////////////////////////// |Выбрать | Т2.Субконто, | Т2.Сумма |ИЗ | &Таблица2 как Т2 |ПОМЕСТИТЬ | ВТ_Т2 |/////////////////////////////////////// |ВЫБРАТЬ | ВТ_Т1.Субконто, | ВЫБОР КОГДА | ВТ_Т1.Сумма >= isnull(ВТ_Т2.Сумма,0) Тогда | ВТ_Т1.Сумма - isnull(ВТ_Т2.Сумма,0) | ИНАЧЕ | 0 | КОНЕЦ | |ОБЪЕДЕНИТЬ ПО | ВТ_Т1.Субконто = ВТ_Т2.Субконто Есть такой запрос по таблицам значений, где &Таблица1 - движения X (ИТОГОВАЯ СУММА 1000) &Таблица2 - Движения Y, (ПУСТАЯ ТАБЛИЦА) Так вот после запроса, итоговая сумма по &Таблица1 увеличивается на n-сумму! Хотя &Таблица2 ПУСТАЯ. Долго думал в чем пробелема, а проблема оказалась в слудующем написал веместо | ВЫБОР КОГДА | ВТ_Т1.Сумма >= isnull(ВТ_Т2.Сумма,0) Тогда | ВТ_Т1.Сумма - isnull(ВТ_Т2.Сумма,0) | ИНАЧЕ | 0 | КОНЕЦ такое |ВТ_Т1.Сумма - isnull(ВТ_Т2.Сумма,0) И все заработало. отсюда вопрос как "ВЫБОР КОГДА КОНЕЦ" Влияет на результат запроса? | |||
| 1
    
        DrunkAnimal 19.11.12✎ 12:36 | 
        спрашивается накуй ... простите ... делать это в запросе     | |||
| 2
    
        DrunkAnimal 19.11.12✎ 12:37 | 
        ошибка здесь, кстати))
  "ОБЪЕДЕНИТЬ ПО" | |||
| 3
    
        GLazNik 19.11.12✎ 12:38 | 
        (0) но выражения таки разные и дают разный результат     | |||
| 4
    
        КУНГ ФУ 1С 19.11.12✎ 12:38 | 
        (2) да ето не оригинальный запрос, писал от руки для примера     | |||
| 5
    
        vmv 19.11.12✎ 12:38 | 
        галимые понты     | |||
| 6
    
        КУНГ ФУ 1С 19.11.12✎ 12:39 | 
        (3) всмысле выражения разные и как могут дать другой результат когда вторая таблица пустая.     | |||
| 7
    
        DrunkAnimal 19.11.12✎ 12:40 | 
        (6) у самого нет идей?     | |||
| 8
    
        КУНГ ФУ 1С 19.11.12✎ 12:40 | 
        (5) какие понты, или написать запрос от руки это уже "ПОНТЫ"     | |||
| 9
    
        КУНГ ФУ 1С 19.11.12✎ 12:41 | 
        (7) были бы идеи, думаю не стал бы этот вопрос обсуждать на форуме.     | |||
| 10
    
        DrunkAnimal 19.11.12✎ 12:42 | 
        (8) что такое: ОБЪЕДЕНИТЬ ПО
  | ВТ_Т1.Субконто = ВТ_Т2.Субконто я вот честно не могу аналога скл подобрать | |||
| 11
    
        GLazNik 19.11.12✎ 12:43 | 
        (6) тут сложно что-то говорить не видя всей картины... а так... "от руки для примера"     | |||
| 12
    
        КУНГ ФУ 1С 19.11.12✎ 12:44 | 
        Запрос.Текст = 
  "ВЫБРАТЬ | ЕСТЬNULL(Основной.Субконто1, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто1, | ЕСТЬNULL(Основной.Субконто2, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто2, | ЕСТЬNULL(Основной.Субконто3, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто3, | Основной.СуммаОстатокДт, | Основной.СуммаОстатокКт |ПОМЕСТИТЬ Основной |ИЗ | &Основной КАК Основной |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЕСТЬNULL(Сторно.Субконто1, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто1, | ЕСТЬNULL(Сторно.Субконто2, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто2, | ЕСТЬNULL(Сторно.Субконто3, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто3, | Сторно.СуммаОстатокДт КАК СуммаОстатокДт, | Сторно.СуммаОстатокКт КАК СуммаОстатокКт |ПОМЕСТИТЬ Сторно |ИЗ | &Сторно КАК Сторно |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Основной.Субконто1, | Основной.Субконто2, | Основной.Субконто3, | Основной.СуммаОстатокДт - ЕСТЬNULL(Сторно.СуммаОстатокДт, 0) КАК СуммаОстатокДт, | Основной.СуммаОстатокКт - ЕСТЬNULL(Сторно.СуммаОстатокКт, 0) КАК СуммаОстатокКт |ИЗ | Основной КАК Основной | ЛЕВОЕ СОЕДИНЕНИЕ Сторно КАК Сторно | ПО Основной.Субконто1 = Сторно.Субконто1 | И Основной.Субконто2 = Сторно.Субконто2 | И Основной.Субконто3 = Сторно.Субконто3"; | |||
| 13
    
        КУНГ ФУ 1С 19.11.12✎ 12:44 | 
        (12) оригинальный запрос     | |||
| 14
    
        GLazNik 19.11.12✎ 12:44 | 
        +(11) но в общем случае 
  | ВЫБОР КОГДА | ВТ_Т1.Сумма >= isnull(ВТ_Т2.Сумма,0) Тогда | ВТ_Т1.Сумма - isnull(ВТ_Т2.Сумма,0) | ИНАЧЕ | 0 | КОНЕЦ совсем не то же самое что |ВТ_Т1.Сумма - isnull(ВТ_Т2.Сумма,0) | |||
| 15
    
        КУНГ ФУ 1С 19.11.12✎ 12:45 | 
        (14) Вот старый запрос
  Запрос.Текст = "ВЫБРАТЬ | ЕСТЬNULL(Основной.Субконто1, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто1, | ЕСТЬNULL(Основной.Субконто2, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто2, | ЕСТЬNULL(Основной.Субконто3, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто3, | Основной.СуммаОстатокДт, | Основной.СуммаОстатокКт |ПОМЕСТИТЬ Основной |ИЗ | &Основной КАК Основной |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ЕСТЬNULL(Сторно.Субконто1, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто1, | ЕСТЬNULL(Сторно.Субконто2, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто2, | ЕСТЬNULL(Сторно.Субконто3, ЗНАЧЕНИЕ(Справочник.Субконто.ПустаяСсылка)) КАК Субконто3, | Сторно.СуммаОстатокДт КАК СуммаОстатокДт, | Сторно.СуммаОстатокКт КАК СуммаОстатокКт |ПОМЕСТИТЬ Сторно |ИЗ | &Сторно КАК Сторно |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Основной.Субконто1, | Основной.Субконто2, | Основной.Субконто3, | ВЫБОР | КОГДА Основной.СуммаОстатокДт >= ЕСТЬNULL(Сторно.СуммаОстатокДт, 0) | ТОГДА Основной.СуммаОстатокДт - ЕСТЬNULL(Сторно.СуммаОстатокДт, 0) | ИНАЧЕ 0 | КОНЕЦ КАК СуммаОстатокДт, | ВЫБОР | КОГДА Основной.СуммаОстатокКт >= ЕСТЬNULL(Сторно.СуммаОстатокКт, 0) | ТОГДА Основной.СуммаОстатокКт - ЕСТЬNULL(Сторно.СуммаОстатокКт, 0) | ИНАЧЕ 0 | КОНЕЦ КАК СуммаОстатокКт |ИЗ | Основной КАК Основной | ЛЕВОЕ СОЕДИНЕНИЕ Сторно КАК Сторно | ПО Основной.Субконто1 = Сторно.Субконто1 | И Основной.Субконто2 = Сторно.Субконто2 | И Основной.Субконто3 = Сторно.Субконто3"; | |||
| 16
    
        КУНГ ФУ 1С 19.11.12✎ 12:49 | 
        up!     | |||
| 17
    
        GLazNik 19.11.12✎ 12:50 | 
        (15) а теперь бы расшифровать еще это: 
  "Так вот после запроса, итоговая сумма по &Таблица1 увеличивается на n-сумму! " | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |