Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Разная работа запросов

Разная работа запросов
Я
   vladis222
 
22.07.19 - 17:17
Неправильная работа запроса
Здравствуйте,подскажите,пожалуйста,почему запрос на вывод товаров,по которым нулевой оборот, отрабатывает не так как второй вариант.
ВЫБРАТЬ
    Товар.Код,
    Товар.Наименование,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Товар.Ссылка) КАК Колво

    ИЗ
    Справочник.Номенклатура КАК Товар
ГДЕ  
    НЕ Ссылка В
        (ВЫБРАТЬ
            Номенклатура
        ИЗ
            РегистрНакопления.ТоварыОрганизаций.Обороты (&НачалоПериода, &КонецПериода)
        ГДЕ
            КоличествоОборот <> 0) И  НЕ Товар.ЭтоГруппа И Товар.Родитель В ИЕРАРХИИ(&ГруппаТовара)
            
            
   СГРУППИРОВАТЬ ПО
    Товар.Код,
    Товар.Наименование

            
            
    УПОРЯДОЧИТЬ ПО
    Товар.Наименование  
  
вот первый вариант,здесь три условия

ВЫБРАТЬ
    Товар.Код,
    Товар.Наименование КАК Название,
    1 КАК Поле1,
    КОЛИЧЕСТВО(РАЗЛИЧНЫЕ Товар.Ссылка) КАК Колво
ИЗ
    Справочник.Номенклатура КАК Товар
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ТоварыОрганизацийОбороты
        ПО Товар.Ссылка = ТоварыОрганизацийОбороты.Номенклатура
ГДЕ
    НЕ Товар.ЭтоГруппа
    И ТоварыОрганизацийОбороты.Номенклатура ЕСТЬ NULL
    И Товар.Родитель В ИЕРАРХИИ(&ГруппаТовара)

СГРУППИРОВАТЬ ПО
    Товар.Код,
    Товар.Наименование

УПОРЯДОЧИТЬ ПО
    Товар.Наименование

вот второй, дополнительные поля сделал для подсчета товаров, и кол-во товаров отличается в первом и втором случаях...
 
 
   dka80
 
1 - 22.07.19 - 17:26
В нижнем запросе у тебя попадет номенклатура с нулевым оборотом
   vicof
 
2 - 22.07.19 - 17:26
Потому что во втором выбирается вся номенклатура, в первом только та, что в регистре.
Оба запроса говнецом попахивают.
   dezss
 
3 - 22.07.19 - 17:28
(1) НЕнулевым
   vicof
 
4 - 22.07.19 - 17:35
Плюс везде внутреннее соединение, а не левое.
Плюс не используются отборы в виртуальных таблицах.
Поле полю1 у тебя ни группируется, ни суммируется.
   Жан Пердежон
 
5 - 22.07.19 - 17:39
(4) чот ты гонишь
   vicof
 
6 - 22.07.19 - 17:50
(5) неа
   Ёпрст
 
7 - 22.07.19 - 17:52
(0) параметры поди разные указываете ?
   Жан Пердежон
 
8 - 22.07.19 - 17:53
(7) в (1) правильный ответ
   Ёпрст
 
9 - 22.07.19 - 17:57
(8) >>>>И ТоварыОрганизацийОбороты.Номенклатура ЕСТЬ NULL 

Че там гришь попадает то ?
   Windyhead
 
10 - 22.07.19 - 18:02
В первом запросе стоит условие:
"
 ГДЕ 
    КоличествоОборот <> 0
"
например было Приход 5 и Расход 5   и КоличествоОборот = 0

а во втором запросе условие "ТоварыОрганизацийОбороты.Номенклатура ЕСТЬ NULL" при тех же данных даст ЛОЖЬ\вот и вся разница
   Windyhead
 
11 - 22.07.19 - 18:05
(1) В верхнем запросе попадает товар у которого приход равен расходу.
   Жан Пердежон
 
12 - 22.07.19 - 18:33
(9)

Движение1: Номенклатура=Товар1, Количество=10, Сумма=1000
Движение2: Номенклатура=Товар1, Количество=-6, Сумма=-600
Движение3: Номенклатура=Товар1, Количество=-4, Сумма=-300
Движение4: Номенклатура=Товар2, Количество=1,  Сумма=500

что выдадут запросы (период, естественно, в интервале)?:

ВЫБРАТЬ Номенклатура 
ИЗ РегистрНакопления.ТоварыОрганизаций.Обороты(&НачалоПериода, &КонецПериода);

ВЫБРАТЬ Номенклатура, КоличествоОборот 
ИЗ РегистрНакопления.ТоварыОрганизаций.Обороты(&НачалоПериода, &КонецПериода);

Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки - вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.