Имя: Пароль:
1C
1C 7.7
v7: 1С++
,
0 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
   $Справочник.Сотрудники Сотр
А геде его нужно объявить?
1 Ёпрст
 
25.01.13
12:18
Шо опять ?

Подумай над этим:

У тебя сейчас запрос условно такой:

|SELECT     Сотр.Descr AS Наименование
|        ,Сотр.Code AS Код  
|FROM  Внутренний

Подумай, что есть Сотр при этом.
2 bananan
 
25.01.13
12:20
(1) Не опять, а снова :). Мне бы суть уловить...
3 bananan
 
25.01.13
12:20
+(2) Альяс значит надо в этом первом фроме объявить?
4 rbserg
 
25.01.13
12:20
HERE
      |     Сотр.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)

Похоже стебешся отрок. Смотри, а то выстеблем.
5 bananan
 
25.01.13
12:22
(4) еще один альяс, а что так нельзя?
6 Mikeware
 
25.01.13
12:22
об этом тебе еще в той ветке сказали...
7 Wobland
 
25.01.13
12:22
+(6) раза три
8 Ganiev
 
25.01.13
12:24
У тебя по факту 2 запроса
1:|SELECT     Сотр.Descr AS Наименование
      |        ,Сотр.Code AS Код  
      |         ,$Сотр.Фирма AS [Фирма $Справочник.Фирмы]
      |         ,$Сотр.ДатаУвольнения AS ДатаУвольнения
      |         ,$Сотр.ДатаПриема AS ДатаПриема    
      |         ,$Сотр.ДатаРождения AS ДатаРождения
      |         ,$Сотр.ПропискаАдрес AS ПропискаАдрес
      |         ,$Сотр.ФактАдрес AS ФактАдрес        
      |         ,$Сотр.Пол as [Стать $Перечисление.Пол]
      |         ,$Сотр.Образование AS [Образование $Перечисление.Образование]
      |         ,$Сотр.СемейноеПоложение AS [СемейноеПоложение $Перечисление.СемейноеПоложение]
      |         ,$Сотр.ИНН AS ИНН
      |         ,$Сотр.ДокВид AS [ДокВид $Перечисление.ВидыДокументов]
      |         ,$Сотр.ДокСерия AS ДокСерия
      |         ,$Сотр.ДокНомер AS ДокНомер
      |         ,$Сотр.ДокКемВыдан AS ДокКемВыдан
      |         ,$Сотр.ДокКогдаВыдан AS ДокКогдаВыдан
      |        ,SUM(Внутренний.Став) as Ставка
      |FROM    (Тут Второй запрос) Сотр
2: SELECT
      |     $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став
      |     ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот
      |     ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф
      |     ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер
      |     ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид
      |     ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) Должность
      |  FROM
      |    $Справочник.Сотрудники Сотр
      |  WHERE
      |     Сотр.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)
      |                
      |    AND $Сотр.ДатаПриема > :Дат1
      |    AND $Сотр.ДатаПриема <= :ДатаАктуальности
      |    AND  ($Сотр.ДатаУвольнения = '01.01.1753' or  $Сотр.ДатаУвольнения>= :ДатаАктуальности )

Сотр ты объявляешь во втором а ссылаешься в первом!
9 rbserg
 
25.01.13
12:24
У тебя во внутреннем подзапросе 6 полей - ОНИ и ТОЛЬКО ОНИ будут видны через "Внутренний" а алиас "Сотр" там не виден.
10 bananan
 
25.01.13
12:25
(6)(7) Вчерашняя ветка у меня почему-то оборвалась... на (125) :)
11 bananan
 
25.01.13
12:26
(8)(9) - Сейчас попробую разобраться
12 Mikeware
 
25.01.13
12:26
+(7) "Но если туп, как дерево, — родишься баобабом И будешь баобабом тыщу лет, пока помрёшь"©
13 Wobland
 
25.01.13
12:26
(10) твой крайний пост 149
14 bananan
 
25.01.13
12:27
(8) А как и где мне обявить альяс в первом зарпосе когда в Фром та идет второй запрос..
15 bananan
 
25.01.13
12:27
(13) Иногда мелькали сообщения, сейчас в той ветке я вижу только 125 постов
16 Wobland
 
25.01.13
12:28
(15) -> (89)
17 Mikeware
 
25.01.13
12:28
хм. "Но если туп, как дерево, — родишься bananan'ом И будешь bananan'ом тыщу лет, пока помрёшь"...
18 rbserg
 
25.01.13
12:29
е-ма. у как можно быть вот таким...
Попробуй:

   |SELECT     Сотр.Descr AS Наименование
   |        ,Сотр.Code AS Код  
   |         ,$Сотр.Фирма AS [Фирма $Справочник.Фирмы]
   |         ,$Сотр.ДатаУвольнения AS ДатаУвольнения
   |         ,$Сотр.ДатаПриема AS ДатаПриема    
   |         ,$Сотр.ДатаРождения AS ДатаРождения
   |         ,$Сотр.ПропискаАдрес AS ПропискаАдрес
   |         ,$Сотр.ФактАдрес AS ФактАдрес        
   |         ,$Сотр.Пол as [Стать $Перечисление.Пол]
   |         ,$Сотр.Образование AS [Образование $Перечисление.Образование]
   |         ,$Сотр.СемейноеПоложение AS [СемейноеПоложение $Перечисление.СемейноеПоложение]
   |         ,$Сотр.ИНН AS ИНН
   |         ,$Сотр.ДокВид AS [ДокВид $Перечисление.ВидыДокументов]
   |         ,$Сотр.ДокСерия AS ДокСерия
   |         ,$Сотр.ДокНомер AS ДокНомер
   |         ,$Сотр.ДокКемВыдан AS ДокКемВыдан
   |         ,$Сотр.ДокКогдаВыдан AS ДокКогдаВыдан
   |        ,SUM(Внутренний.Став) as Ставка
   |FROM    
   |(
   |  SELECT
   |     $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |     ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр0.ID, :ДатаАктуальности) КвоЛьгот
   |     ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр0.ID, :ДатаАктуальности) Тариф
   |     ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр0.ID, :ДатаАктуальности) Пенсионер
   |     ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр0.ID, :ДатаАктуальности) Инвалид
   |     ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр0.ID, :ДатаАктуальности) Должность
   |     ,Сотр0.ID as ID
   |  FROM
   |    $Справочник.Сотрудники Сотр0
   |  WHERE
   |     Сотр0.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)
   |                
   |    AND $Сотр0.ДатаПриема > :Дат1
   |    AND $Сотр0.ДатаПриема <= :ДатаАктуальности
   |    AND  ($Сотр0.ДатаУвольнения = '01.01.1753' or  $Сотр0.ДатаУвольнения>= :ДатаАктуальности )
   |) as Внутренний
   |INNER JOIN $Справочник.Сотрудники as Сотр (NOLOCK) on Сотр.ID =  Внутренний.ID
19 Ganiev
 
25.01.13
12:29
(14)Вот смотри Ты Запрашивешь данные 2 запросом получаешь некую ТЗ с колонками Став,КвоЛьгот,Тариф и т. д. А первым запросом ты уже получаешь данный из Тз которую получил 2-ым запросом
20 Wobland
 
25.01.13
12:30
(18) на пальцах:

выбрать
сотрудник.что-то
из

(неважно что) как внутренний

какой такой сотрудник?
21 Ganiev
 
25.01.13
12:31
(18)+ Вот тебе правильно советует обьяви через Инер джин!
22 rbserg
 
25.01.13
12:31
А это че за "Художества"????
   |  WHERE
   |     Сотр0.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)

Что ты этим сказать хотел?
23 Wobland
 
25.01.13
12:31
(20) ага, иннер джойн не приметил, пардон
24 rbserg
 
25.01.13
12:33
+(22) Где там условие ради которого ты условие писал??
25 Mikeware
 
25.01.13
12:33
(22) от тупо копипастит все подряд, и пеедвигает скопипистченные куски в нажеде, что "вдруг заработает"...
26 rbserg
 
25.01.13
12:38
(25) Шас сделаем...
27 Mikeware
 
25.01.13
12:42
(26) трункуейт ему уже подсовывали...
28 bananan
 
25.01.13
12:46
(25) Ага, тебе видней...
29 rbserg
 
25.01.13
12:47
Да я рандомизатор-перемешиватель строк запроса хотел написать.
Типа перемешал - попробовал, не сработало - снова перемешал.
И так покуда не взлетит...
30 bananan
 
25.01.13
12:48
попробывал жойнуть..
выдает ошибку:
 nvalid column name 'ID'
31 Wobland
 
25.01.13
12:48
(30) что это значит?
32 bananan
 
25.01.13
12:49
(31) |INNER JOIN $Справочник.Сотрудники as Сотр (NOLOCK) on Сотр.ID =  Внутренний.ID";
33 Wobland
 
25.01.13
12:49
(32) что значит "инвалид колумн нэйм"?
34 bananan
 
25.01.13
12:50
(33) имени такого столбца СКЛ не занет
35 Wobland
 
25.01.13
12:50
(34) молодец! следующий вопрос: что не так?
36 Mikeware
 
25.01.13
12:51
(33) "инвалида звали колумбом"? :-)
37 bananan
 
25.01.13
12:52
(35) Если бы я знал что не так - давно бы уже написал этот запрос и забыл
38 Wobland
 
25.01.13
12:53
Сотр.ID =  Внутренний.ID
а ну поищи ИД в каждой из этих таблиц
39 rbserg
 
25.01.13
13:01
Текс запроса с (18) полностью скопипастил?
40 bananan
 
25.01.13
13:03
(38) рябята я с 1990 привык учиться на конкретных примерах (это не коипи - паст)...
(39) нет - только ыннер жойн
41 Wobland
 
25.01.13
13:07
(40) то есть, свои ошибки править не научился...
42 bananan
 
25.01.13
13:08
(41) Всем дол встречи и спасибо. Пойду я лечиться; заболел
43 rbserg
 
25.01.13
13:10
(40) Тогда понятно почему лезет еррор.
44 sapphire
 
25.01.13
13:16
(42) ТС явно болен
45 bananan
 
25.01.13
13:33
я уже вернулся.. Вчера вечером температура была 38.3, сегодня в 8 - 37.2, сейчас - 36.6
46 bananan
 
25.01.13
13:46
До сути докопаться я так и не смог..
Сечас текст запроса такой:
   |            Сотр.Descr AS Наименование
   |        ,Сотр.Code AS Код  
   |         ,$Сотр.Фирма AS [Фирма $Справочник.Фирмы]
   |         ,$Сотр.ДатаУвольнения AS ДатаУвольнения
   |         ,$Сотр.ДатаПриема AS ДатаПриема    
   |         ,$Сотр.ДатаРождения AS ДатаРождения
   |         ,$Сотр.ПропискаАдрес AS ПропискаАдрес
   |         ,$Сотр.ФактАдрес AS ФактАдрес        
   |         ,$Сотр.Пол as [Стать $Перечисление.Пол]
   |         ,$Сотр.Образование AS [Образование $Перечисление.Образование]
   |         ,$Сотр.СемейноеПоложение AS [СемейноеПоложение $Перечисление.СемейноеПоложение]
   |         ,$Сотр.ИНН AS ИНН
   |         ,$Сотр.ДокВид AS [ДокВид $Перечисление.ВидыДокументов]
   |         ,$Сотр.ДокСерия AS ДокСерия
   |         ,$Сотр.ДокНомер AS ДокНомер
   |         ,$Сотр.ДокКемВыдан AS ДокКемВыдан
   |         ,$Сотр.ДокКогдаВыдан AS ДокКогдаВыдан
   |        ,SUM(Внутренний.Став) as Ставка
   |FROM    
   |(
   |  SELECT
   |     $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |     ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр0.ID, :ДатаАктуальности) КвоЛьгот
   |     ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр0.ID, :ДатаАктуальности) Тариф
   |     ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр0.ID, :ДатаАктуальности) Пенсионер
   |     ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр0.ID, :ДатаАктуальности) Инвалид
   |     ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр0.ID, :ДатаАктуальности) Должность
   |     ,Сотр0.ID as ID
   |  FROM
   |    $Справочник.Сотрудники Сотр0
   |  WHERE
   |     Сотр0.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)
   |                
   |    AND $Сотр0.ДатаПриема > :Дат1
   |    AND $Сотр0.ДатаПриема <= :ДатаАктуальности
   |    AND  ($Сотр0.ДатаУвольнения = '01.01.1753' or  $Сотр0.ДатаУвольнения>= :ДатаАктуальности )
   |) as Внутренний
   |INNER JOIN $Справочник.Сотрудники as Сотр (NOLOCK) on Сотр.ID =  Внутренний.ID";
Выдает ошибку:
 Column 'Сотр.DESCR' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
GROUP BY в запросе не используется,
А если его нужно использовать, то - где?
47 bananan
 
25.01.13
13:59
+(46) Добавил я в текст запроса GROUP BY (последней строкой) теперь подобная ошибка о поле Сотр.COD
48 Ёпрст
 
25.01.13
14:01
Ё.. ты (1) не в состоянии осилить ?
Ты у таблицы Внутренний просишь поля от какой-то таблицы Сотр, которой у неё нет не было и не будет.
49 Ёпрст
 
25.01.13
14:01
Че там может быть вообще не понятного ?
50 bananan
 
25.01.13
14:02
(48) Сейчас попробую...
51 bananan
 
25.01.13
14:03
(48) А как здесь на первое сообщение выйти?
52 Ёпрст
 
25.01.13
14:03
Любой селект грубо говоря, возвращает таблицу, которой ты задаешь имя (алияс). Это твой подзапрос, имя ты ему задал as Внутренний.

Потом ты у этой таблицы хочешь еще сделать выборку, следовательно, обращатся ко всем полям таблицы Внутренний нужно как
Внутренний.ИмяПоля (ИмяПоля - это имена колонок если чё)
53 trad
 
25.01.13
14:03
(47) а зачем group by добавил?
54 Ёпрст
 
25.01.13
14:03
(53) потехи ради, забавы для :)
55 bananan
 
25.01.13
14:04
(52) Попробую осилить :(
56 trad
 
25.01.13
14:05
и эта, книги то еще никто не предлагал почитать
а то ведь обучение только на примерах не есть хорошо
57 Mikeware
 
25.01.13
14:05
(53) в прошлый раз кто-то куда-то добавлял - какой-то запрос заработал... Вот он и подумал - "дай добавлю..."
58 Wobland
 
25.01.13
14:05
(53) sql ждёт от него группировки, вот он и пишет
59 bananan
 
25.01.13
14:06
(56) Я и книги читаю, но теория без пракьтики - ничто
Практика без теории - конечно тоже плохо, потому и теорией занимаюсь
60 Wobland
 
25.01.13
14:07
(59) врёшь ты всё. я тебя носом тыкал туда, где ты читал, а ты не понимал
61 Mikeware
 
25.01.13
14:08
(56) не один _десяток_ раз отправляли читать книги..
62 bananan
 
25.01.13
14:08
(52) Насколько я понимаю, в запросе этот код дает таблицу Внутренний:
|FROM    
   |(
   |  SELECT
   |     $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |     ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр0.ID, :ДатаАктуальности) КвоЛьгот
   |     ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр0.ID, :ДатаАктуальности) Тариф
   |     ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр0.ID, :ДатаАктуальности) Пенсионер
   |     ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр0.ID, :ДатаАктуальности) Инвалид
   |     ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр0.ID, :ДатаАктуальности) Должность
   |     ,Сотр0.ID as ID
   |  FROM
   |    $Справочник.Сотрудники Сотр0
   |  WHERE
   |     Сотр0.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)
   |                
   |    AND $Сотр0.ДатаПриема > :Дат1
   |    AND $Сотр0.ДатаПриема <= :ДатаАктуальности
   |    AND  ($Сотр0.ДатаУвольнения = '01.01.1753' or  $Сотр0.ДатаУвольнения>= :ДатаАктуальности )
   |) as Внутренний  
Да?
63 Mikeware
 
25.01.13
14:09
(62) да
64 bananan
 
25.01.13
14:09
(60) И куда ты меня носом тыкал?
65 Ёпрст
 
25.01.13
14:10
(62) х...се, просветление достигнуто!
66 Ёпрст
 
25.01.13
14:10
:)
67 trad
 
25.01.13
14:10
ну тогда вы зря тратите свое время, кмк
68 Wobland
 
25.01.13
14:10
(64) полностью в два поста цитировал главу 8(?) про периодические реквизиты. ты ещё до этого говорил, что ссылку читал
69 Mikeware
 
25.01.13
14:10
(62) только поделись, что ты хотел сказать этим:
WHERE
   |     Сотр0.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)
70 Wobland
 
25.01.13
14:10
(65) это рандом!
71 Mikeware
 
25.01.13
14:11
(65) не бойся, это временно...
72 Mikeware
 
25.01.13
14:11
(67) зато забавно...
лулзов море..
73 sapphire
 
25.01.13
14:11
(64) Николай, у Вас, простите, есть в/о?
74 Wobland
 
25.01.13
14:11
(67) я здесь уже просто развлекаюсь, почти не надеясь на просветление
75 bananan
 
25.01.13
14:12
(63) Т.н. Таблица Внутренний будет иметь такие поля:
|     $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |     ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр0.ID, :ДатаАктуальности) КвоЛьгот
   |     ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр0.ID, :ДатаАктуальности) Тариф
   |     ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр0.ID, :ДатаАктуальности) Пенсионер
   |     ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр0.ID, :ДатаАктуальности) Инвалид
   |     ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр0.ID, :ДатаАктуальности) Должность
   |     ,Сотр0.ID as ID
А во внешнем запросе я к полям жтой таблицы вроде как и не обращаюсь...
76 sapphire
 
25.01.13
14:12
(65) Я бы его отправил штудировать Ицика....
Там делов-то дня на 3 :)
77 Wobland
 
25.01.13
14:13
(76) называли это слово. что это такое?
78 bananan
 
25.01.13
14:14
(76) Ицика я читаю, и, к стати, там больше практики чем теории - тем и хорош этот учебник
79 sapphire
 
25.01.13
14:14
(65) (72) (77) Он еще не догадался соединить справочник со всей это поетой?
80 Mikeware
 
25.01.13
14:14
(73)  "в/о" - это "вообще [хоть какое-нибудь] образование"? :-)
81 sapphire
 
25.01.13
14:15
(77) Книжка типа SQL for final dummies or crazyes :)
82 sapphire
 
25.01.13
14:15
(80) ага
83 sapphire
 
25.01.13
14:16
(78) !"№;%:?*()ЩЗ!!!!!!!!
Не читать надо а делать и разбираться попутно что делаешь.
84 bananan
 
25.01.13
14:16
Во внешнем запросе есть одно обращение к полю таблицы внутрення, так оно и правильно определено:
 ,SUM(Внутренний.Став) as Ставка
85 Ёпрст
 
25.01.13
14:16
(75)
она (табличка Внутренний  )  будет иметь поля такие :

Став
КвоЛьгот
Тариф
Пенсионер
Инвалид
Должность
ID
86 bananan
 
25.01.13
14:17
(83) А я чем пол-твоему занимаюсь?
87 Mikeware
 
25.01.13
14:17
(85) капитан?
88 Wobland
 
25.01.13
14:17
(84) это поле просуммировать хочешь. а с остальными что?
89 Mikeware
 
25.01.13
14:17
(86) мозгойопством...
но забавным
90 Ёпрст
 
25.01.13
14:18
(87) это на всякий, вдруг автор не понял, судя по (75)
91 Wobland
 
25.01.13
14:18
(86) бездумно собираешь мозаику, пока не соберётся
92 bananan
 
25.01.13
14:18
(88) щстальные поля - периодические реквизиты или к ним можно и в первом запросе обратиться..
93 sapphire
 
25.01.13
14:19
(86) Честно? Фигней какой-то.
94 Wobland
 
25.01.13
14:19
(92) вася 20
федя 40

просуммируй
95 Mikeware
 
25.01.13
14:19
(90) почему это "вдруг"? :-)
96 sapphire
 
25.01.13
14:20
а вообще, конечно, лулзы доставляет, да...
97 sapphire
 
25.01.13
14:21
(92) А ты попробуй. Или подумай, а можно и то, и другое одновременно.
98 bananan
 
25.01.13
14:21
в конце концов запрос:
|SELECT    
   |            Сотр.Descr AS Наименование
   |        ,Сотр.Code AS Код  
   |         ,$Сотр.Фирма AS [Фирма $Справочник.Фирмы]
   |         ,$Сотр.ДатаУвольнения AS ДатаУвольнения
   |         ,$Сотр.ДатаПриема AS ДатаПриема    
   |         ,$Сотр.ДатаРождения AS ДатаРождения
   |         ,$Сотр.ПропискаАдрес AS ПропискаАдрес
   |         ,$Сотр.ФактАдрес AS ФактАдрес        
   |         ,$Сотр.Пол as [Стать $Перечисление.Пол]
   |         ,$Сотр.Образование AS [Образование $Перечисление.Образование]
   |         ,$Сотр.СемейноеПоложение AS [СемейноеПоложение $Перечисление.СемейноеПоложение]
   |         ,$Сотр.ИНН AS ИНН
   |         ,$Сотр.ДокВид AS [ДокВид $Перечисление.ВидыДокументов]
   |         ,$Сотр.ДокСерия AS ДокСерия
   |         ,$Сотр.ДокНомер AS ДокНомер
   |         ,$Сотр.ДокКемВыдан AS ДокКемВыдан
   |         ,$Сотр.ДокКогдаВыдан AS ДокКогдаВыдан
   |        ,SUM(Внутренний.Став) as Ставка

   |FROM    
   |(
   |  SELECT
   |     $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |     ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр0.ID, :ДатаАктуальности) КвоЛьгот
   |     ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр0.ID, :ДатаАктуальности) Тариф
   |     ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр0.ID, :ДатаАктуальности) Пенсионер
   |     ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр0.ID, :ДатаАктуальности) Инвалид
   |     ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр0.ID, :ДатаАктуальности) Должность
   |     ,Сотр0.ID as ID
   |  FROM
   |    $Справочник.Сотрудники Сотр0
   |  WHERE
   |     Сотр0.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)
   |                
   |    AND $Сотр0.ДатаПриема > :Дат1
   |    AND $Сотр0.ДатаПриема <= :ДатаАктуальности
   |    AND  ($Сотр0.ДатаУвольнения = '01.01.1753' or  $Сотр0.ДатаУвольнения>= :ДатаАктуальности )
   |) as Внутренний    
   |INNER JOIN $Справочник.Сотрудники as Сотр (NOLOCK) on Сотр.ID =  Внутренний.ID
выдает ошибку:
 ]Column 'Сотр.DESCR' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.
А Сотр.DESCR выбираю я во внешнем запросе... Чего SQL хочет?
99 Ёпрст
 
25.01.13
14:21
Всё это смахивает на Свету Семененко или Лёву Баранова
100 trad
 
25.01.13
14:21
(78) ну так в SQL теории то вообще с гулькин нос, но ее нужно понимать
101 Ёпрст
 
25.01.13
14:22
(98) хочет тебя послать в пешее путешествие с эротическим уклоном, но лексикон, заложенный авторами не позволяет ему сделать этого.
102 Wobland
 
25.01.13
14:23
(98) того же, чего и я в (94)
103 sapphire
 
25.01.13
14:23
(98) Вот я потому и думаю, что Вы, Николай, фигней занимаетесь...

А англицьку мову, Вы, разумеете?
Оно же Вам явно каже де is not contained in an aggregate function and there is no GROUP BY
104 Wobland
 
25.01.13
14:23
(99) света честно стебалась, а тут..
105 bananan
 
25.01.13
14:24
Рябята у меня опыт работы только SELECT и немного WHERE
А в данном случае с текущим запросом мне поможет конкретная подсказка
106 trad
 
25.01.13
14:25
Для лулзов вам задачка.
Многие ли определят есть ли в следующих запросах ошибки.
Только чур, по-честному, без проверки в QA

1)
select *
from tab1
join tab2
on tab2.fld = tab1.fld
join tab3
on tab3.fld = tab1.fld

2)
select *
from tab1
inner join tab2
inner join tab3
on tab3.fld = tab2.fld
on tab2.fld = tab1.fld

3)
select *
from tab1
inner join tab2
inner join tab3
on tab3.fld = tab1.fld
on tab2.fld = tab1.fld
107 Ёпрст
 
25.01.13
14:25
(105) конкретная подсказка была еще в (1) посту.
108 Wobland
 
25.01.13
14:26
(105) ты хочешь перестать приходить сюда с идиотскими вопросами и быть посмещищем для всех? начни думать
109 sapphire
 
25.01.13
14:26
SELECT    
|SELECT    
   |            Сотр.Descr AS Наименование
   |        ,Сотр.Code AS Код  
   |         ,$Сотр.Фирма AS [Фирма $Справочник.Фирмы]
   |         ,$Сотр.ДатаУвольнения AS ДатаУвольнения
   |         ,$Сотр.ДатаПриема AS ДатаПриема    
   |         ,$Сотр.ДатаРождения AS ДатаРождения
   |         ,$Сотр.ПропискаАдрес AS ПропискаАдрес
   |         ,$Сотр.ФактАдрес AS ФактАдрес        
   |         ,$Сотр.Пол as [Стать $Перечисление.Пол]
   |         ,$Сотр.Образование AS [Образование $Перечисление.Образование]
   |         ,$Сотр.СемейноеПоложение AS [СемейноеПоложение $Перечисление.СемейноеПоложение]
   |         ,$Сотр.ИНН AS ИНН
   |         ,$Сотр.ДокВид AS [ДокВид $Перечисление.ВидыДокументов]
   |         ,$Сотр.ДокСерия AS ДокСерия
   |         ,$Сотр.ДокНомер AS ДокНомер
   |         ,$Сотр.ДокКемВыдан AS ДокКемВыдан
   |         ,$Сотр.ДокКогдаВыдан AS ДокКогдаВыдан
   |        ,SUM(Внутренний.Став) as Ставка -- <-- Это агрегатная функция!!!

   |FROM    
   |(
   |  SELECT
   |     $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |     ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр0.ID, :ДатаАктуальности) КвоЛьгот
   |     ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр0.ID, :ДатаАктуальности) Тариф
   |     ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр0.ID, :ДатаАктуальности) Пенсионер
   |     ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр0.ID, :ДатаАктуальности) Инвалид
   |     ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр0.ID, :ДатаАктуальности) Должность
   |     ,Сотр0.ID as ID
   |  FROM
   |    $Справочник.Сотрудники Сотр0
   |  WHERE
   |     Сотр0.ID IN (SELECT Сотрв.Code AS КодВ FROM $Справочник.Сотрудники Сотрв)
   |                
   |    AND $Сотр0.ДатаПриема > :Дат1
   |    AND $Сотр0.ДатаПриема <= :ДатаАктуальности
   |    AND  ($Сотр0.ДатаУвольнения = '01.01.1753' or  $Сотр0.ДатаУвольнения>= :ДатаАктуальности )
   |) as Внутренний    
   |INNER JOIN $Справочник.Сотрудники as Сотр (NOLOCK) on Сотр.ID =  Внутренний.ID
   |GROUP BY
   |            Сотр.Descr
   |        ,Сотр.Code
   |         ,$Сотр.Фирма
   |         ,$Сотр.ДатаУвольнения
   |         ,$Сотр.ДатаПриема
   |         ,$Сотр.ДатаРождения
   |         ,$Сотр.ПропискаАдрес
   |         ,$Сотр.ФактАдрес
   |         ,$Сотр.Пол
   |         ,$Сотр.Образование
   |         ,$Сотр.СемейноеПоложение
   |         ,$Сотр.ИНН
   |         ,$Сотр.ДокВид
   |         ,$Сотр.ДокСерия
   |         ,$Сотр.ДокНомер
   |         ,$Сотр.ДокКемВыдан
   |         ,$Сотр.ДокКогдаВыдан
110 Wobland
 
25.01.13
14:26
(109) очень помог...
111 Wobland
 
25.01.13
14:27
(106) 1) где псевдоним.*?
112 sapphire
 
25.01.13
14:28
(105) При чем здесь твой опыт с select и прочим?
Хотя бы бегло прорешать книжечку, там страниц-то мало совсем.
Неужели так трудно?
113 bananan
 
25.01.13
14:28
(109) что Сум агрегетная функция я знаю... и что дальше??
114 Ёпрст
 
25.01.13
14:28
(106) чем второй от третьего отличается ?
:0
115 bananan
 
25.01.13
14:28
(112) читаю где-то по 15-20 страниц в день
116 trad
 
25.01.13
14:29
(111) псевдоним не обязателен
117 trad
 
25.01.13
14:29
(114) предпоследней строкой
118 bananan
 
25.01.13
14:30
У меня опять этот форум врооде как глючит .. после сообщения 100 сразу идет 116..
119 Wobland
 
25.01.13
14:30
(113) что она суммирует?
120 Wobland
 
25.01.13
14:30
(118) на вторую страницу перейди
121 bananan
 
25.01.13
14:31
(120) я и так на странице 2
122 sapphire
 
25.01.13
14:31
(113) А как она должна суммировать? SQL должен сам догадаться?
123 Wobland
 
25.01.13
14:31
(121) тогда на третью. или все сообщения
124 bananan
 
25.01.13
14:31
(119) Суммирует количество ставок у разных сотрудников
125 trad
 
25.01.13
14:31
(118) в личных настройках сними галки с пунктов
Автообновление темы (каждые 15 сек подгружаются только новые сообщения)
Подгрузка сообщений в тему при пролистывании
126 sapphire
 
25.01.13
14:31
(115) Надо РЕШАТЬ а не читать.
127 Wobland
 
25.01.13
14:32
(124) вася 30
федя 40
128 sapphire
 
25.01.13
14:32
(123) А интересно, если просуммировать сотрудников что получится? :)
129 Wobland
 
25.01.13
14:33
(126) а мы на что?
130 sapphire
 
25.01.13
14:33
(129) А мы так, наставлять на пусть истинный :)
131 trad
 
25.01.13
14:33
(128) сотрудник с фамилией ИТОГО
132 bananan
 
25.01.13
14:34
(128) издевайтесь-издевайтесь, а зачем и кому от этого лучше вам - вряд-ли, мне - тоже не так
133 sapphire
 
25.01.13
14:34
(131) Врядли :)
134 Wobland
 
25.01.13
14:35
более характерный пример:
вася 10
вася 20
федя 30

сколько я хочу: 60 или вася 30/федя 30?
135 sapphire
 
25.01.13
14:35
(132) Представляешь, то, что ты пишешь, похоже на
мне надо сложить, помогите, плиз
код:
2+

чего то явно не хватает, верно?
136 trad
 
25.01.13
14:36
так, ясно, Ёпрст ушел проверять (106) на примере в QA
:))
137 sapphire
 
25.01.13
14:36
(136) Кроме 1 ничего не должно работать
138 sapphire
 
25.01.13
14:37
(136) Если, конечно, речь о SQL, а не одинесно-восьмерочных извращениях
139 trad
 
25.01.13
14:39
(138) про sql в общем конечно и 8x-нотации в частности
140 Ёпрст
 
25.01.13
14:39
(136) не..
141 Ёпрст
 
25.01.13
14:40
мне лень, но так, последние два не рабочие.. вот если on в них where заменить то покатит.
142 Ёпрст
 
25.01.13
14:40
не так ли ?
143 Ёпрст
 
25.01.13
14:40
да и с тобой на бентли один хрен не заработаешь
144 trad
 
25.01.13
14:41
1, 2 - ok
3 - err
145 Ёпрст
 
25.01.13
14:42
(144) странно, а почему 2 будет работать ?
146 bananan
 
25.01.13
14:43
Ладно, сметесь-смейтесь... Я все равно SQL осилю
147 Ёпрст
 
25.01.13
14:43
есть готовый код для qa ? проверить хоть, писать лень :)
148 trad
 
25.01.13
14:44
по 1) ни у кого вопросов нет
во 2) tab2 связывается с tab3 первым on, а результат с tab1 вторым on
149 trad
 
25.01.13
14:46
(147) нет. на коленке писал. скопируй, да вместо всех tab поставь любую таблицу реальную
150 Ёпрст
 
25.01.13
14:47
(148) как это ? Если смотреть в бол, то после иннер обязателен предикакт on писать, если его не указывать, то в where должен быть, разве нет ? Не вижу там, чтоб можно было так писать

from table
join table2
join table2
join table2
join table2
join table2
on
on
on
on
151 sapphire
 
25.01.13
14:47
(144) А ну да там вложенный join
152 trad
 
25.01.13
14:47
+(149) ну или добавь
declare @tab1 table(fld int)
declare @tab2 table(fld int)
declare @tab3 table(fld int)
153 sapphire
 
25.01.13
14:48
(150)

select *
from (SELECT 1 fld) tab1
inner join (SELECT 1 fld) tab2
   inner join (SELECT 1 fld) tab3
   on tab3.fld = tab2.fld
on tab2.fld = tab1.fld
154 sapphire
 
25.01.13
14:48
(152) извращенецъ :)
155 sapphire
 
25.01.13
14:51
(150)

from table
join table2 --(1)
join table2 --(2)
join table2 --(3)
join table2 --(4)
join table2 --(5)
on --(5)
on --(4)  
on --(3)
on --(2)
on --(1)
156 sapphire
 
25.01.13
14:51
+(155) Вложенность допускается.
Но я так не пишу никогда
157 trad
 
25.01.13
14:51
(150) из bol в сильно сокращенном варианте:
FROM < table_source >
< table_source > ::=
   table_name  
   | < joined_table >
< joined_table > ::=
   < table_source > < join_type > < table_source > ON < search_condition >

так вот заметь < table_source > - рекурсивен
158 Ёпрст
 
25.01.13
14:52
(157)ага, увидел..
но енто ж не читьабельнол
159 sapphire
 
25.01.13
14:53
(157) Мне вложенность не нравится из-за нечитабелности
160 sapphire
 
25.01.13
14:53
(158) Ну да, зато канает :)
161 Ёпрст
 
25.01.13
14:53
(155) ужо догнал.
162 trad
 
25.01.13
14:53
(156) а почему? ведь иногда удобно же, даже можно сказать незаменимо
163 sapphire
 
25.01.13
14:54
(162) Почему?
164 Ёпрст
 
25.01.13
14:54
(163) текст запроса поди динамически лепит
165 sapphire
 
25.01.13
14:54
Линейно, ИМХО, читабельней.
Ну если ты имеешь ввиду получение каких-то вспомогательных данных через 5 соедниений, тогда наверное. и читабельно
166 trad
 
25.01.13
14:56
что почему? почему незаменимо? потому что тоже самое по-другому не написать.
И про нечитабельность - не согласен. Вполне
167 sapphire
 
25.01.13
14:56
(166) Не сталкивался.
168 sapphire
 
25.01.13
14:56
(166) Пример?
169 bananan
 
25.01.13
14:59
Народ, а я вам дал неплохую тему :)
170 trad
 
25.01.13
14:59
(169) не льсти себе
171 sapphire
 
25.01.13
15:01
(170) Приведи пример, когда сделать линейным join нельзя
172 sapphire
 
25.01.13
15:02
(169) Вместо того, что бы следить за потоком сознания, лучше би Ицика про-решал... Читатель...
173 trad
 
25.01.13
15:03
(171)ну ты загнул, это же думать надо
174 sapphire
 
25.01.13
15:04
(173) Ага, значит ты недумая сказал, да... ай я яй... пичалька
175 Ёпрст
 
25.01.13
15:04
Есть еще онлайн самоучитель с задачками по скулю.. не помню токма название сайта.
176 rbserg
 
25.01.13
15:04
(169) > Народ, а я вам дал неплохую тему :)
В теме надо ходить с противогазом - дым от колодок глаза режет.
Может просто задачу напишешь?
177 Ёпрст
 
25.01.13
15:05
178 Ёпрст
 
25.01.13
15:06
вот сюда ходи и изучай запросы.
179 trad
 
25.01.13
15:08
(174) ну да, про "по другому не написать" я скорее всего загнул
180 Ganiev
 
25.01.13
15:08
(0)Блин вот короче читай и изучай с примерами!!!!
http://www.fayloobmennik.net/2550719
181 Ёпрст
 
25.01.13
15:09
(179) А сам, реально так пишешь всегда ? Так же ошибиться на ерунде можно.. ищи потом
:(
182 Mikeware
 
25.01.13
15:13
(105) зачет!
"я вообще-то математик. Но опыт у меня только с "умножить" и немного с "плюс". а с "минус" - не работал, мне нужна конкретная подсказка"©
183 trad
 
25.01.13
15:15
(181) ну почему всегда, очень редко, но бывает
вот например задача с подчиненными: выбрать накладные со счетами фактурами.
сейчас нарисую простой пример.

ps
вот где то у меня был очень показательный случай. пока не могу найти
184 Ёпрст
 
25.01.13
15:24
(183) ага, выкладывай!
185 trad
 
25.01.13
15:24
вот иногда такое пишу
   |select
   |    right(j.date_time_iddoc,9) Накладная,
   |    right(jcr.date_time_iddoc,9) СчетФактура
   |from _1sjourn j (nolock)
   |
   |left join _1scrdoc cr (nolock)
   |    inner join _1sjourn jcr (nolock)
   |    on jcr.date_time_iddoc = cr.child_date_time_iddoc
   |on cr.mdid = 0
   |and cr.parentval = 'O1'+$ВидДокумента36.РасходнаяНакладная+right(cr.child_date_time_iddoc,9)
   |and jcr.iddocdef = $ВидДокумента.СчетФактура
   |
   |where j.iddocdef = $ВидДокумента.РасходнаяНакладная
   |  and j.date_time_iddoc between '' and ''
186 trad
 
25.01.13
15:26
кстати попробуйте тоже самое получить каскадными соединениями, а не вложенными
187 trad
 
25.01.13
15:27
+(185)
тут вывод списка накладных и, если есть, СФ к ним
188 Ёпрст
 
25.01.13
15:30
дык при этом

   |left join _1scrdoc cr (nolock)
   |on cr.mdid = 0
   |and cr.parentval = 'O1'+$ВидДокумента36.РасходнаяНакладная+right(cr.child_date_time_iddoc,9)
   |    inner join _1sjourn jcr (nolock)
   |    on jcr.date_time_iddoc = cr.child_date_time_iddoc
   |and jcr.iddocdef = $ВидДокумента.СчетФактура

будет тоже самое
189 trad
 
25.01.13
15:35
(188)неа, не будет накладных без СФ
190 Ёпрст
 
25.01.13
15:49
(189) а нафига там еще один иннер джоин ?
191 Ёпрст
 
25.01.13
15:50
а всё... догнал, фильтруешь вид дока
192 bananan
 
25.01.13
15:58
Соскучился я за вами :)
вопрос:
   |       ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [$Перечисление.МестоРаботы]
как это правильно записать типизация последнего значения перечисления, потому как на такой код выдает ошибку:
 Ошибка типизации поля $Перечисление.МестоРаботы.
193 Ёпрст
 
25.01.13
15:59
AS [Вася as $Перечисление.МестоРаботы]
194 bananan
 
25.01.13
16:01
(193) выдает ошибку..
код:
  |       ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность $Перечисление.МестоРаботы]
ошибка:
   Ошибка типизации поля Должность $Перечисление.МестоРаботы.
195 Ёпрст
 
25.01.13
16:03
(194) для начала, этот код где ?
в подзапросе ?
Если да, то там типизация не нужна и противопоказана.
196 bananan
 
25.01.13
16:04
(195) код в запросе
полный текст запроса:
  |SELECT  
   |         Сотр.Descr AS Наименование
   |         ,$Сотр.ДатаРождения
   |         ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот
   |         ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф
   |         ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер
   |         ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид
   |       ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность $Перечисление.МестоРаботы]
 
   |FROM    
   |   $Справочник.Сотрудники AS Сотр
   |";
197 Ёпрст
 
25.01.13
16:06
(196) а с чего уверенность, что МестоРаботы - перечисление.МестоРаботы ?
Мот справочник ?
:)
198 bananan
 
25.01.13
16:07
(197) Сорри, опять туплю
199 bananan
 
25.01.13
16:08
+(198) Стесняюсь спросить а как  к тому справочнику обратиться?
200 Mikeware
 
25.01.13
16:09
(199) вежливо
201 bananan
 
25.01.13
16:09
+(199) еще подзапрос писать7
202 bananan
 
25.01.13
16:09
(220) Твои ответы лаконичны и, ГЛАВНОЕ, полезные
203 Mikeware
 
25.01.13
16:10
(201) прочитай про типизацию результатов запроса...
204 bananan
 
25.01.13
16:11
(203) Где?
205 Mikeware
 
25.01.13
16:13
(204) в документации на 1с++
206 Ёпрст
 
25.01.13
16:14
(204) в хелпе!
207 Ёпрст
 
25.01.13
16:14
208 Mikeware
 
25.01.13
16:16
209 bananan
 
25.01.13
16:20
(207) На сколько  понял мне надо ЗначениеВСтрокуБД?
И гед и как зедсь применить ЗначениеВСтрокуБД?       $ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS Должность
210 Ёпрст
 
25.01.13
16:21
(209) нет
211 Mikeware
 
25.01.13
16:23
(209) ты выдающийся...
я таких в мизде и не помню почти... только один был - какойто павлик из ссык-втык-вкара...
212 bananan
 
25.01.13
16:24
запутался я совсем, а типизация здесь до боли проста:
|       ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность  $Справочник.Подразделения]
213 Mikeware
 
25.01.13
16:25
(212) о чем тебе и говорят... стоит всего лишь почитать документацию....
214 bananan
 
25.01.13
16:31
(212) И с моим запросом дока сильно поможет? или Ицик здесь лучше?
215 Ёпрст
 
25.01.13
16:36
всё поможет
216 Ёпрст
 
25.01.13
16:36
если ум приложить
217 sapphire
 
25.01.13
16:38
(214) Еще раз:
Дока по 1С++ дает только ТРАНСЛЯЦИЮ имен и некоторых конструкций из метаСКЛ в текст SQL.

Сама же текст запроса состоит из совего рода указаний для 1С++ вот эту байду мне назови так, а эту так.

В итоге, после обработки текста получается запрос SQL....

И получается, что на метаСКЛ ты пишешь запрос SQL....

Если имя задано неверно, SQL скажет, что ты "недума" и что-то не так, если синтаксис, как с GROUP BY... Короче одно без другого безидейно :) в 1С++
218 trad
 
25.01.13
16:38
(216) я так понимаю (186) не получилось? или забил?
219 Ёпрст
 
25.01.13
16:47
(218) конечно забил, но получить можно :)
220 Ёпрст
 
25.01.13
16:47
соединением с подзапросом
221 bananan
 
25.01.13
16:47
ОП, я только сейчас сообразил. Совсем вроде не так надо данный запрос писать, потому что мне надо просуммировать ставки для каждой из групп в справочнике сотрудники...
А как в 1С++ определить что это группа?
222 Ёпрст
 
25.01.13
16:48
надо бы план выполнения поглядеть, как он вложенные обрабатывает..
223 Ёпрст
 
25.01.13
16:49
224 bananan
 
25.01.13
16:51
(221) Спасибо. Читаю
225 trad
 
25.01.13
16:55
(220) ну можно и с подзапросом соединит, можно и корреляционный в селект лист вставить.
Но вроде говорили про вложенное vs каскадное соединение
226 Ёпрст
 
25.01.13
16:56
(225) Ну, я то не говорил, тока слушал и смотрел :)
227 bananan
 
25.01.13
16:57
|ISFOLDER = 1 значит группа...
А теперь мне для каждой группы надо просумировать к-во ставок.
Как это сделать?
228 Ёпрст
 
25.01.13
16:58
Хотя и в линейном тоже скорее всего можно, надо подумать...
229 bananan
 
25.01.13
17:15
хорошо, я все-таки еще не до конц понял с именами
написал такой запрос:
     |          SELECT Сотр.Ставка
   |            FROM $Справочник.Сотрудники AS Сотр  
   |            WHERE ISFOLDER <> 1 /* ISFOLDER=1 это группа, иначе не группа (а, запись в группе, т.е не группа <> 1 */
Выдает ошибку:
 Invalid column name 'Ставка'
230 rbserg
 
25.01.13
17:17
(229) Комментарии в MS SQL не /* коммент*/,
а
|           SELECT Сотр.Ставка
|            FROM $Справочник.Сотрудники AS Сотр  
|             WHERE ISFOLDER <> 1 -- Это правильный коммент читай букварь блин жеж!!!
231 Mikeware
 
25.01.13
17:17
нет _в_базе_ в таблице поля с именем "Ставка"
232 rbserg
 
25.01.13
17:18
Короче комент в MS SQL начинается с "--"
233 Ёпрст
 
25.01.13
17:18
(229) ставка - периодический реквизит, она хранится в 1sconst, её нет физически в табличке $Справочник.Сотрудники.
Ну сколько можно ?
234 rbserg
 
25.01.13
17:19
(233) > Ну сколько можно ?
+1
Автор, дуй чтить мануалы. Быстро!
235 bananan
 
25.01.13
17:19
(231) Да, блин, я понял такой инглиш, но поле Ставка есть в справочнике Сотрудники. Понятно что я к нему не правильно обращаюсь..
А как правильно?
236 Ёпрст
 
25.01.13
17:20
(232)
/* а это батенька,
многострочный комментарий в скуле

и аутор, тут первый раз не при чем
*/
237 Wobland
 
25.01.13
17:20
новую ветку пора. про периодические реквизиты.
(235) есть у тебя поле вида sp3145, но не в случае с периодическими
238 bananan
 
25.01.13
17:20
(233) Спасибо, мануалы я читаю, просто голова уже кругом идет - забыл что ставка - переодический реквизит
239 Ёпрст
 
25.01.13
17:20
(235) смотри свой запрос в (0), вспоминай при ПоследнееЗначение
240 Mikeware
 
25.01.13
17:21
(237) да, собственно, и периодика тут ни при чем...
241 rbserg
 
25.01.13
17:23
(236) и правда. 4 года со скулем вожусь не разу не воспользовался. бывает же..
242 bananan
 
25.01.13
17:23
(239) $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
243 Ёпрст
 
25.01.13
17:26
(241) ну, в доках же по скулю сплошь и рядом, ты просто не замечал, что они есть :)
244 bananan
 
25.01.13
17:27
Написал так (коменты для себя ставил):
|SELECT  
   |         Сотр.Descr AS Наименование
   |         ,$Сотр.ДатаРождения
   |         ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот
   |         ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф
   |         ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер
   |         ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид
   |       ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность  $Справочник.Подразделения]
   |         ,SUM(Подзапрос.Став) as Ставка
   | /* Подзапрос */
   |        FROM  
   |          SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |            FROM $Справочник.Сотрудники AS Сот0  
   |            WHERE ISFOLDER <> 1 /* ISFOLDER=1 это группа, иначе не группа (а, запись в группе, т.е не группа <> 1 */
   |                
   | /* Подзапрос */
   |FROM    
   |   $Справочник.Сотрудники AS Сотр
   |";
выдает ошибку Incorrect syntax near the keyword 'SELECT'
Ясно что ошибка в SELECT подзапроса...
Но где здесь ошибка в SELECT?
245 Ёпрст
 
25.01.13
17:29
(244) подзапрос в скобочках
246 Ёпрст
 
25.01.13
17:30
и следующий фром не ясно к чему..
247 Wobland
 
25.01.13
17:30
фром (селект)
248 Wobland
 
25.01.13
17:30
а автор, похоже, исправляется. не зря я в него верил ;)
хоть вопросы толково ставить начал ;)
249 bananan
 
25.01.13
17:32
(246)(247) да я когда писал меня это мучило, а где мне объявить альяс длс Стр?
250 bananan
 
25.01.13
17:32
(248) Спасимбо
251 rbserg
 
25.01.13
17:34
(244) Давай полный запрос.
252 bananan
 
25.01.13
17:35
|SELECT  
   |         Сотр.Descr AS Наименование
   |         ,$Сотр.ДатаРождения
   |         ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот
   |         ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф
   |         ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер
   |         ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид
   |       ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность  $Справочник.Подразделения]
   |         ,SUM(Подзапрос.Став) as Ставка
   | /* Подзапрос */
   |        FROM  
   |(          SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |            FROM $Справочник.Сотрудники AS Сотр0  
   |            WHERE ISFOLDER <> 1 /* ISFOLDER=1 это группа, иначе не группа (а, запись в группе, т.е не группа <> 1 */
   |)                
   | /* Подзапрос */
   |FROM    
   |   $Справочник.Сотрудники AS Сотр
   |";
253 Wobland
 
25.01.13
17:37
(249) фром (селект) ас Стр? запрос не глядел
254 bananan
 
25.01.13
17:38
(253) ничего не понял :(
255 bananan
 
25.01.13
17:43
Где альяс Сотр объявлять???
256 monsterZE
 
25.01.13
17:47
ты выбираешь и выборки.. вот к ней и обращайся
257 Wobland
 
25.01.13
17:49
|SELECT  
   |         Сотр.Descr AS Наименование
   |        ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность  $Справочник.Подразделения]
   |         ,SUM(Подзапрос.Став) as Ставка
   |        FROM  
   |(           SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |            FROM $Справочник.Сотрудники AS Сотр0  
   |             WHERE ISFOLDER <> 1) as Подзапрос
inner join
   |   $Справочник.Сотрудники AS Сотр
on Подзапрос.id=Сотр.id

это всё на коленке, не вникая в смысл
258 monsterZE
 
25.01.13
17:49
Для IsFolder: 2 – Элемент, 1 – Группа. Это сделано для того чтобы упорядочивание по этому полю сначала выдавало группы, а затем элементы.
259 Wobland
 
25.01.13
17:51
(257) group by ещё, конечно
260 rbserg
 
25.01.13
17:52
а нафиг ему там ,SUM(Подзапрос.Став)??
261 rbserg
 
25.01.13
17:53
Автор изложи задачу словами.
262 bananan
 
25.01.13
17:56
(261) Сдовами...
Надо показать инфу для отдела кадров, в том числе и количество ставок у каждого подразделения
263 bananan
 
25.01.13
17:57
(257) Спасибо, сейчас так буду пробывать
264 Wobland
 
25.01.13
18:04
(262) если это задача, то "надо почитать документацию" - ответ
265 bananan
 
25.01.13
18:05
Теперь текст запроса такой:
|SELECT  
   |         Сотр.Descr AS Наименование
   |         ,$Сотр.ДатаРождения AS ДатаРождения
   |         ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот
   |         ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф
   |         ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер
   |         ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид
   |       ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность  $Справочник.Подразделения]
   |         ,SUM(Подзапрос.Став) as Ставка
   | /* Подзапрос */
   |        FROM  
   |(          SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |            FROM $Справочник.Сотрудники AS Подзапрос  
   |            WHERE ISFOLDER <> 1 /* ISFOLDER=1 это группа, иначе не группа (а, запись в группе, т.е не группа <> 1 */
   |)                
   | /* Подзапрос */                          
   | inner join
   | $Справочник.Сотрудники AS Сотр
   |
   |";
Выдает ошибку:
          Incorrect syntax near the keyword 'inner'.
266 bananan
 
25.01.13
18:08
+(265) что теперь не так?
Только не надо что ошибка в использовании ключевого слова 'inner'
267 Mikeware
 
25.01.13
18:11
_near_ the keyword 'inner'.
268 Wobland
 
25.01.13
18:15
фром (подзапрос) _ас алиас_ джойн
269 bananan
 
25.01.13
18:15
(267) Ты (266) читал?
270 bananan
 
25.01.13
18:16
(268) не понял..
271 bananan
 
25.01.13
18:17
+ (268) FROM $Справочник.Сотрудники AS Подзапрос
...
| inner join
   | $Справочник.Сотрудники AS Сотр
272 bananan
 
25.01.13
18:18
или inner join надо к подзапросу лепить?
273 bananan
 
25.01.13
18:19
+(272) дак и в подзапросе  inner join некоректный
274 Wobland
 
25.01.13
18:21
(270) ты подзапрос каким словом обозвал (псевдонимом, алиасом)
275 bananan
 
25.01.13
18:22
(274)подзапрос я и обозвал словом подзапрос
276 Wobland
 
25.01.13
18:24
select
table1.some_fields,
table2.some_fields
from
 (select
   more_fields
   from
   something_else)
as table1
inner join
 something as table2
====
select ... from ... as tab1 join ... as tab2
понимаешь "схемку"?
277 Wobland
 
25.01.13
18:25
(275) (
278 Wobland
 
25.01.13
18:25
(277) случайный ентер
(275) там где-то есть "AS Подзапрос" или я не вижу?
279 bananan
 
25.01.13
18:27
(278) Наверное нет - сейчас посмотрю
280 bananan
 
25.01.13
18:29
+(279) вот текст подзщапроса:
|(          SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |            FROM $Справочник.Сотрудники AS Подзапрос  
   |            WHERE ISFOLDER <> 1 /* ISFOLDER=1 это группа, иначе не группа (а, запись в группе, т.е не группа <> 1 */
   |)                
Где здесь втавить AS Подзапрос?
281 bananan
 
25.01.13
18:29
+(280) Пардон ас здесь есть:
SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |            FROM $Справочник.Сотрудники AS Подзапрос
282 bananan
 
25.01.13
18:30
ното ас выходит на Справочник.Сотрудники?
283 bananan
 
25.01.13
18:32
и почему не коректен inner join?
284 Wobland
 
25.01.13
18:33
(282) истинно так
ещё раз
select ... from() _as subquery_ и только потом join ... as сотрудники
285 bananan
 
25.01.13
18:42
(284) Суть понял
286 bananan
 
25.01.13
18:44
Сделал так:
|SELECT  
   |         Сотр.Descr AS Наименование
   |         ,$Сотр.ДатаРождения AS ДатаРождения
   |         ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот
   |         ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф
   |         ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер
   |         ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид
   |       ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность  $Справочник.Подразделения]
   |         ,SUM(Подзапрос.Став) as Ставка
   | /* Подзапрос */
   |        FROM  
   |(          SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став
   |            FROM $Справочник.Сотрудники
   |            WHERE ISFOLDER <> 1 /* ISFOLDER=1 это группа, иначе не группа (а, запись в группе, т.е не группа <> 1 */
   |)AS Подзапрос  
   | /* Подзапрос */                          
   | inner join
   | $Справочник.Сотрудники AS Сотр
выдает ошибку:
   Incorrect syntax near 'Сотр'.
287 bananan
 
25.01.13
18:44
И где посмотреть какая именно строка выдает эту ошибку?
288 Wobland
 
25.01.13
18:57
join по какому условию? join on...
289 Wobland
 
25.01.13
18:58
(287) если более бородатые подскажут, скажу спасибо ;)
290 bananan
 
25.01.13
19:00
(288) а какое здесь может быть условие?
291 bananan
 
25.01.13
19:02
+(290) Еще раз задача выбрать сотрудников и данные по них + к этому подсчитать число ставок в подразделениях
292 Wobland
 
25.01.13
19:08
открываем Ицик для чайников и изучаем соединения.
у тебя есть две таблицы с такими-то полями. соединение говорит о том, что нужно какие-то поля одной таблицы и "подсунуть" справа какие-то поля второй. от типа соединения и условия зависит результат запроса.

часто иногда делается что-то типа
выбрать сотрудники.пусть_наименование, подзапрос.пусть_ставка
() как подзапрос пусть_внутреннее соединение сотрудники
по подзапрос.ид=сотрудники.ид
293 Wobland
 
25.01.13
19:10
//лениво раскладку переключать. как вспомню себя.. то $ надо, то "справочник", то опять from какой-нибудь. и всё одной рукой...
294 bananan
 
25.01.13
19:15
(292) Ицика я читаю.. (плохо видно читаю )
А какое мне в моей задаче ставить условие?
295 Wobland
 
25.01.13
19:19
(294) да я уже бахнул, думать не хочу ;)
296 Wobland
 
25.01.13
19:19
достал, короче ;)

SELECT  
   Сотр.Descr AS Наименование,
   $Сотр.ДатаРождения AS ДатаРождения,
   $ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот,
   $ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф,
   $ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер,
   $ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид,
   $ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность  $Справочник.Подразделения],
   $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) Став,
   SUM(Подзапрос.Став) as Ставка
FROM  
   $Справочник.Сотрудники AS Сотр
GROUP BY
   Сотр.Descr,
   $Сотр.ДатаРождения,
   $ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности),
   $ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности),
   $ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности),
   $ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности),
   $ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности),
   $ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности)
297 Wobland
 
25.01.13
19:20
"Сотр0" читать как "Сотр"
298 bananan
 
25.01.13
19:20
+(294) С условеим соединения вроде понял
сделал так:
|SELECT  
   |         Сотр.Descr AS Наименование
   |         ,$Сотр.ДатаРождения AS ДатаРождения
   |         ,$ПоследнееЗначение.Сотрудники.КвоЛьгот(Сотр.ID, :ДатаАктуальности) КвоЛьгот
   |         ,$ПоследнееЗначение.Сотрудники.Тариф(Сотр.ID, :ДатаАктуальности) Тариф
   |         ,$ПоследнееЗначение.Сотрудники.Пенсионер(Сотр.ID, :ДатаАктуальности) Пенсионер
   |         ,$ПоследнееЗначение.Сотрудники.Инвалид(Сотр.ID, :ДатаАктуальности) Инвалид
   |       ,$ПоследнееЗначение.Сотрудники.МестоРаботы(Сотр.ID, :ДатаАктуальности) AS [Должность  $Справочник.Подразделения]
   |         ,SUM(Подзапрос.Став) as Ставка
   | /* Подзапрос */
   |        FROM  
   |(          SELECT $ПоследнееЗначение.Сотрудники.Ставка(Сотр.ID, :ДатаАктуальности) Став
   |            FROM $Справочник.Сотрудники
   |            WHERE ISFOLDER <> 1 /* ISFOLDER=1 это группа, иначе не группа (а, запись в группе, т.е не группа <> 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.
299 bananan
 
25.01.13
19:23
А (296) к чему?
300 Wobland
 
25.01.13
19:26
(299) синтаксически и логически верный нужный тебе запрос. на мой скромный взгляд, конечно
301 Wobland
 
25.01.13
19:26
ах, да. вхере про группу вставляется перед груп бай
302 bananan
 
25.01.13
19:27
(330) с логикой тут вроде тоже не все в порядке, но сейчас мне бы с синтаксисом разобраться..
303 bananan
 
25.01.13
19:30
а вообще и в 1С++ не без странностей, почему к полю справочника "ДатаРождения" надо обращаться как $Сотр.ДатаРождения а к полю Наименование Сотр.Descr?
304 Wobland
 
25.01.13
19:31
(303) *.dd почитай. то, что ты видишь как ДатаРождения называется в sql sp5564 (к примеру), наименование - descr. есть ещё code, id и т.д.
(302) возьми, выполни и расскажи, как оно
305 Wobland
 
25.01.13
19:32
$Сотр.ДатаРождения эквивалентно Сотр.sp2345 - без доллара
306 bananan
 
25.01.13
19:41
(304) Да как его выполнить, если синтаксический ошибки
307 Wobland
 
25.01.13
19:45
(296) перечитал. кроме Сотр0 не увидел. ну и пусть без условия про группы
308 Wobland
 
25.01.13
19:46
увидел
SUM($ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности)) Став, - исправить,
SUM(Подзапрос.Став) as Ставка - dsrbyenm
309 Wobland
 
25.01.13
19:46
$ПоследнееЗначение.Сотрудники.Ставка(Сотр0.ID, :ДатаАктуальности) и вот этого в группировке быть не должно
310 bananan
 
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.
311 Wobland
 
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, :ДатаАктуальности)
312 bananan
 
25.01.13
19:57
(311) Ты посмотри (310) причем здесь груп бай?
313 Wobland
 
25.01.13
20:01
(312) а при чём здесь подзапрос? ты ж суммировать хочешь. сколько я тебя федей и васей пытал? просто возьми и сделай.
314 McNamara
 
25.01.13
20:03
Ветка и тема из прощлого столетия)
315 ADirks
 
28.01.13
07:37
Прикольная ветка. Я вот тут тоже нарыл у в нашей конфе:
УчитыватьНДС = 2 - ?(Фирма.ОсновнаяСтавкаНДС.Ставка > 0, 1, 2);
это конечно не так круто, как коррелированый запрос, но тоже неплохо.
316 sapphire
 
28.01.13
09:55
(310) То, что двинулся, это верно.
Ну посмотри, что ты пишешь,а?

подзапрос:

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