Имя: Пароль:
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
   $Справочник.Сотрудники Сотр
А геде его нужно объявить?
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
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс