Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Выборка из регистра (число прочтений - 1150 )
an20077
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 16. Февраля 2021
Выборка из регистра
16. Февраля 2021 :: 10:42
Печать  
Добрый день всем.
Переписываю запрос из стандартного в прямой:
Было:
     ТекстЗапроса = ЗапросПериода(ДатаКон) + "
           |Магазин=Регистр.Остатки.Магазин;Условие (Магазин=ВыбМагаз);
           |Поставщик=Регистр.Остатки.Партия.Поставщик;
           |Товар=Регистр.Остатки.Аналог.Владелец;" + ?(ГруппаЗП.Выбран() = 1, "Условие (Товар в ГруппаЗП);", "") + "
           |Аналог=Регистр.Остатки.Аналог;
           |Партия=Регистр.Остатки.Партия;
           |кмс=Регистр.Остатки.Партия.Комиссия;" + ?(_товар = 1, "", ?(_товар = 2, "Условие (кмс=0);", "Условие (кмс=1);")) + "
           |к1=Регистр.Остатки.Количество;
           |Функция НачКол=НачОст(к1);
           |Функция ПрхКол=Приход(к1);
           |Функция РсхКол=Расход(к1);
           |Функция КонКол=КонОст(к1);
           |Группировка Поставщик;
           |Группировка Аналог;
           |Группировка Партия;";
Сделал так:
     стрЗапроса = "
     | SELECT
     |   Рег.Аналог as [Аналог $Справочник.НовАналоги],
     |   Рег.Партия as [Партия $Справочник.Партии],
     |   Рег.КоличествоНачальныйОстаток as НачКол,
     |   Рег.КоличествоПриход as ПрхКол,
     |   Рег.КоличествоРасход as РсхКол,
     |   Рег.КоличествоКонечныйОстаток as КонКол
     | FROM
     |   $РегистрОстаткиОбороты.Остатки(:ДатаНач, :ДатаКон~, , , ,Магазин=:ВыбМагаз, (Аналог,Партия,Магазин), Количество) as Рег";
Все работает.
Как добавить колонку Поставщик?
Рег.Партия.Поставщик as [Поставщик $Справочник.Контрагенты] -  так не работает.
Также не могу и фильтр по комисси добавить.

Пробовал так:
     |SELECT
     |  Рег.Аналог as [Аналог $Справочник.НовАналоги],
     |  Рег.Партия as [Партия $Справочник.Партии],
     |  $Партия.Поставщик as [Поставщик $Справочник.Контрагенты],
     |  Рег.КоличествоНачальныйОстаток as НачКол,
     |  Рег.КоличествоПриход as ПрхКол,
     |  Рег.КоличествоРасход as РсхКол,
     |  Рег.КоличествоКонечныйОстаток as КонКол
     |FROM
     |  $РегистрОстаткиОбороты.Остатки(:ДатаНач, :ДатаКон~, , , ,Магазин=:ВыбМагаз, (Аналог,Партия,Магазин), Количество) as Рег";
Тоже не работает.
« Последняя редакция: 16. Февраля 2021 :: 11:53 - an20077 »  
Наверх
 
IP записан
 
Sserj
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 77
Зарегистрирован: 25. Октября 2010
Re: Выборка из регистра
Ответ #1 - 16. Февраля 2021 :: 13:07
Печать  
стрЗапроса = "
| SELECT
....
|   $Партии.Поставщик as [Поставщик $Справочник.Контрагенты]
| FROM
|   $РегистрОстаткиОбороты.Остатки(:ДатаНач, :ДатаКон~, , , ,Магазин=:ВыбМагаз, (Аналог,Партия,Магазин), Количество) as Рег
|   left join $Справочник.Партии as Партии with (nolock)
|   on Рег.Партия = партии.id";

Ну и по аналогии с комиссией разобраться.
Т.е. главное понять что SQL ни разу не объектный.
Все таблицы плоские, "через точку" можно получить только поле.
  
Наверх
 
IP записан
 
an20077
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 16. Февраля 2021
Re: Выборка из регистра
Ответ #2 - 16. Февраля 2021 :: 13:23
Печать  
Sserj писал(а) 16. Февраля 2021 :: 13:07:
стрЗапроса = " ....";
Ну и по аналогии с комиссией разобраться.
Т.е. главное понять что SQL ни разу не объектный.
Все таблицы плоские, "через точку" можно получить только поле.


Спасибо, сразу не подумал, что SQL не объектноориентированный язык.
С поставщиками Ок, разобрался, а вот реквизит <Комиссия> - это число (0 или 1), я так понимаю, что LEFT JOIN не пройдет? Или ошибаюсь?
  
Наверх
 
IP записан
 
an20077
YaBB Newbies
*
Отсутствует


1C++ rocks!

Сообщений: 7
Зарегистрирован: 16. Февраля 2021
Re: Выборка из регистра
Ответ #3 - 16. Февраля 2021 :: 13:32
Печать  
Sserj wrote, ещё раз спасибо, разобрался.
Комиссия как числовое значение добавляется в результирующую таблицу.
Все работает.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать