Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема запрос в 1sqlite (число прочтений - 1938 )
kollodina
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 34
Зарегистрирован: 07. Июля 2008
запрос в 1sqlite
07. Июля 2008 :: 05:12
Печать  
только начинаю использовать - и вот не получается запрос к регистру и справочникам...
тз = Запрос.ВыполнитьЗапрос(
          "select
         |    id[Сотрудник :ПроцентыДляБонуса] ,
           |(select id[Сотрудник: Справочник.ПроцентыДляБонуса] ,
           |(select value  from __1S_Const
           |    where id = :ИсторияРеквизита.ПроцентыДляБонуса.Процент
           |    and date <= :ДатаРекв and objid = проценты.id
           |    order by date desc limit 1) Процент from Справочник_ПроцентыДляБонуса Проценты where
           | Проценты.сотрудник = Данные.торговыйпредставитель and Проценты.перечень = Данные.перечень )
         |from регистр_ДанныеСупервайзеров Данные
           | where Данные.дата= :ДатаРекв
         |");   

ругается -  no such column: id
буду благодарна за подсказки.
  
Наверх
 
IP записан
 
kollodina
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 34
Зарегистрирован: 07. Июля 2008
Re: запрос в 1sqlite
Ответ #1 - 07. Июля 2008 :: 05:26
Печать  
а вот в таком запросе ошибка = Неправильная типизация в колонке Сотрудник :ПроцентыДляБонуса
что это значит и как исправить? спасибо
тз = Запрос.ВыполнитьЗапрос(
          "select
         |    id[Сотрудник :ПроцентыДляБонуса] ,
           |(select value  from __1S_Const
           |    where id = :ИсторияРеквизита.ПроцентыДляБонуса.Процент
           |    and date <= :ДатаРекв and objid = проценты.id
           |    order by date desc limit 1) Процент from Справочник_ПроцентыДляБонуса Проценты
         |");
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: запрос в 1sqlite
Ответ #2 - 07. Июля 2008 :: 08:01
Печать  
Вообще жесть какая-то. Вот этим:
Цитата:
"select
        |    id[Сотрудник :ПроцентыДляБонуса] ,
          |(select id[Сотрудник: Справочник.ПроцентыДляБонуса] ,  

Ты что вообще хотел сделать?

2. В типизации надо чётко указывать во что ты хочешь типизироваться. "ПроцентыДляБонуса" - нет такого типа данных. Если это у тебя справочник, то надо писать так:
Цитата:
[:Справосник.ПроцентыДляБонуса]


А вообще почитай учебник по использованию прямых запросов в 1С (есть в документации и здесь в прикреплённой ветке)
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: запрос в 1sqlite
Ответ #3 - 07. Июля 2008 :: 08:09
Печать  
kollodina писал(а) 07. Июля 2008 :: 05:26:
а вот в таком запросе ошибка = Неправильная типизация в колонке Сотрудник :ПроцентыДляБонуса
что это значит и как исправить? спасибо
тз = Запрос.ВыполнитьЗапрос(
          "select
         |    id[Сотрудник :ПроцентыДляБонуса] ,
           |(select value  from __1S_Const
           |    where id = :ИсторияРеквизита.ПроцентыДляБонуса.Процент
           |    and date <= :ДатаРекв and objid = проценты.id
           |    order by date desc limit 1) Процент from Справочник_ПроцентыДляБонуса Проценты
         |");  

непонятно, зачем сравнивать объект (id) и его реквизит (процент)
  
Наверх
 
IP записан
 
kollodina
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 34
Зарегистрирован: 07. Июля 2008
Re: запрос в 1sqlite
Ответ #4 - 07. Июля 2008 :: 08:13
Печать  
сделала уже - вот так работает
         тз = Запрос.ВыполнитьЗапрос(
               "select
     |    Данные.торговыйпредставитель, Данные.город, Данные.перечень [Перечень :Перечисление.перечни],
     |    Проценты.id [Сотрудник :Справочник.ПроцентыДляБонуса],
     |    (select cast(value as numeric)   from __1S_Const
     |    where id = :ИсторияРеквизита.ПроцентыДляБонуса.Процент
     |    and date <= :ДатаРекв and objid = проценты.id
     |    order by date desc limit 1) [Процент :Число.15.2] ,
     |      Сеть.id[ТорговыйАгент :Справочник.ТорговаяСеть],
     | (select cast(value as numeric)   from __1S_Const
     |    where id = :ИсторияРеквизита.ТорговаяСеть.Штатный
     |    and date <= :ДатаРекв and objid = Сеть.id
     |    order by date desc limit 1) [Штатный :Число.10.0],
     | (select value    from __1S_Const
     |    where id = :ИсторияРеквизита.ТорговаяСеть.территория
     |    and date <= :ДатаРекв and objid = Сеть.id
     |    order by date desc limit 1) [Территория :Справочник.Территории]         
     |from регистр_ДанныеСупервайзеров Данные
     |inner join Справочник_ПроцентыДляБонуса Проценты
     |on (Проценты.сотрудник = Данные.торговыйпредставитель and Проценты.перечень = Данные.перечень) 
     |inner join Справочник_ТорговаяСеть Сеть
     |on (Сеть.id = Данные.торговыйпредставитель ) 
     |where  Данные.дата= :ДатаРекв
     |");      
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать