Вход | Регистрация

  1  2  3  4
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: 1С++

v7: 1С++
Я
   bananan
 
25.01.13 - 12:16
Всем добрый день, извиняюсь. что новую ветку написал.. но вчеращняя у меня что-то глючит..
Так вот сейчас текст запроса такой:
|SELECT    Сотр.Descr AS Наименование
       |        ,Сотр.Code AS Код   
       |         ,$Сотр.Фирма AS [Фирма $Справочник.Фирмы]
       |         ,$Сотр.ДатаУвольнения AS ДатаУвольнения 
       |         ,$Сотр.ДатаПриема AS ДатаПриема    
       |         ,$Сотр.ДатаРождения AS ДатаРождения
       |         ,$Сотр.ПропискаАдрес AS ПропискаАдрес 
       |         ,$Сотр.ФактАдрес AS ФактАдрес         
       |         ,$Сотр.Пол as [Стать $Перечисление.Пол]
       |         ,$Сотр.Образование AS [Образование $Перечисление.Образование]
       |         ,$Сотр.СемейноеПоложение AS [СемейноеПоложение $Перечисление.СемейноеПоложение]
       |         ,$Сотр.ИНН AS ИНН 
       |         ,$Сотр.ДокВид AS [ДокВид $Перечисление.ВидыДокументов]
       |         ,$Сотр.ДокСерия AS ДокСерия 
       |         ,$Сотр.ДокНомер AS ДокНомер
       |         ,$Сотр.ДокКемВыдан AS ДокКемВыдан
       |         ,$Сотр.ДокКогдаВыдан AS ДокКогдаВыдан
       |        ,SUM(Внутренний.Став) as Ставка
       |FROM     
       |(
       |  SELECT
       |     $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став
       |     ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот
       |     ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф
       |     ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер
       |     ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид
       |     ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) Должность
       |  FROM
       |    $Справочник.Сотрудники Сотр
       |  WHERE
       |     Сотр.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)
       |                
       |    AND $Сотр.ДатаПриема > :Дат1 
       |    AND $Сотр.ДатаПриема <= :ДатаАктуальности 
       |    AND  ($Сотр.ДатаУвольнения = '01.01.1753' or  $Сотр.ДатаУвольнения>= :ДатаАктуальности )
       |) as Внутренний";
Выдает ошибку:
 The column prefix 'Сотр' does not match with a table name or alias name used in the query.
У меня альяс Сотр объявлен в  
FROM
   $Справочник.Сотрудники Сотр
А геде его нужно объявить?
 
 
   Wobland
 
301 - 25.01.13 - 19:26
ах, да. вхере про группу вставляется перед груп бай
   bananan
 
302 - 25.01.13 - 19:27
(330) с логикой тут вроде тоже не все в порядке, но сейчас мне бы с синтаксисом разобраться..
   bananan
 
303 - 25.01.13 - 19:30
а вообще и в 1С++ не без странностей, почему к полю справочника "ДатаРождения" надо обращаться как $Сотр.ДатаРождения а к полю Наименование Сотр.Descr?
   Wobland
 
304 - 25.01.13 - 19:31
(303) *.dd почитай. то, что ты видишь как ДатаРождения называется в sql sp5564 (к примеру), наименование - descr. есть ещё code, id и т.д.
(302) возьми, выполни и расскажи, как оно
   Wobland
 
305 - 25.01.13 - 19:32
$Сотр.ДатаРождения эквивалентно Сотр.sp2345 - без доллара
   bananan
 
306 - 25.01.13 - 19:41
(304) Да как его выполнить, если синтаксический ошибки
   Wobland
 
307 - 25.01.13 - 19:45
(296) перечитал. кроме Сотр0 не увидел. ну и пусть без условия про группы
   Wobland
 
308 - 25.01.13 - 19:46
увидел
SUM($ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности)) Став, - исправить,
SUM(Подзапрос.Став) as Ставка - dsrbyenm
   Wobland
 
309 - 25.01.13 - 19:46
$ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) и вот этого в группировке быть не должно
   bananan
 
310 - 25.01.13 - 19:50
Я уже совсем двинулся
Код:
ТекстЗапроса = "
    |SELECT    
    |         Сотр.Descr AS Наименование
    |  /* SUM($ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности)) */
    |
    | /* Подзапрос */                           
    |        FROM   
    |(           SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став
    |            FROM $Справочник.Сотрудники 
    |             WHERE ISFOLDER <> 1 
    |)AS Подзапрос  
    | /* Подзапрос */                           
    |inner join $Справочник.Сотрудники as Сотр (NOLOCK) on Сотр.ID = Подзапрос.ID
    |";
выдает ошибку:
 ]The column prefix 'Сотр' does not match with a table name or alias name used in the query.
 
 Рекламное место пустует
   Wobland
 
311 - 25.01.13 - 19:52
вот это сделай

SELECT   
    Сотр.Descr AS Наименование,
    $Сотр.ДатаРождения AS ДатаРождения,
    $ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот,
    $ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф,
    $ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер,
    $ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид,
    $ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность  $Справочник.Подразделения],
    SUM($ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности)) Став,
FROM   
    $Справочник.Сотрудники AS Сотр
GROUP BY
    Сотр.Descr,
    $Сотр.ДатаРождения,
    $ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности),
    $ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности),
    $ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности),
    $ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности),
    $ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности)
   bananan
 
312 - 25.01.13 - 19:57
(311) Ты посмотри (310) причем здесь груп бай?
   Wobland
 
313 - 25.01.13 - 20:01
(312) а при чём здесь подзапрос? ты ж суммировать хочешь. сколько я тебя федей и васей пытал? просто возьми и сделай.
   McNamara
 
314 - 25.01.13 - 20:03
Ветка и тема из прощлого столетия)
   ADirks
 
315 - 28.01.13 - 07:37
Прикольная ветка. Я вот тут тоже нарыл у в нашей конфе:
УчитыватьНДС = 2 - ?(Фирма.ОсновнаяСтавкаНДС.Ставка > 0, 1, 2);
это конечно не так круто, как коррелированый запрос, но тоже неплохо.
   sapphire
 
316 - 28.01.13 - 09:55
(310) То, что двинулся, это верно.
Ну посмотри, что ты пишешь,а?

подзапрос:

  SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став
                FROM $Справочник.Сотрудники 
                 WHERE ISFOLDER <> 1 
1. ЧТО ЗДЕСЬ ЗА Сотр.ID????
2. Далее ты соединяешься опять же по Подзапрос.ID
ГДЕ ЭТО ДОЛБАННОЕ ID У ТЕБЯ В ПОДЗАПРОСЕ?!
   Wobland
 
317 - 29.01.13 - 05:42
потом потеряю это оптимистичное заявление автора..
"Так уж получилось. но, поверьте - неделя-две и от этого незнания и следа не будет"
Оптимизация запроса
   Mikeware
 
318 - 29.01.13 - 06:13
(317) а может, это - уже новое "незнание"? :-)
а от старого и следа не осталось...
в принципе, логично - ТС тупит всегда по-разному...
   sapphire
 
319 - 29.01.13 - 12:13
(317) (318) Затих ТС :)
Видать готовит очередной шедевр :D
  1  2  3  4

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует