|
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
|
(207) точнее, http://www.1cpp.ru/docum/icpp/html/ODBC.html#id7
|
|||
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 |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |