|
соединение нескольких таблиц SQL | ☑ | ||
---|---|---|---|---|
0
Игорь_МММ
04.12.17
✎
14:22
|
Command.CommandText = "Select DISTINCT
| TElems_2.CommonPOS, | TElems_2.FurnType, | TNNomenclature.Name AS Nomenclature, | TElems_2.Name AS ElemName, | TElems.UnitPos, | TElems_2.ParentPOS, | TElems_2.Count |FROM TElems |LEFT JOIN TElems TElems_2 |ON TElems.UnitPos=TElems_2.ParentPOS |LEFT JOIN TNNomenclature TNNomenclature |ON TElems.PriceID=TNNomenclature.ID |ORDER BY TElems.UnitPos,TElems_2.FurnType"; гуру, подскажите в чем здесь проблема? по поиску вроде такой же пример -https://technet.microsoft.com/ru-ru/library/ms191430(v=sql.105).aspx ан, не взлетает ... |
|||
1
Ненавижу 1С
гуру
04.12.17
✎
14:24
|
и в чем вопрос?
|
|||
2
Ёпрст
04.12.17
✎
14:24
|
(0) Что именно "не взлетает" ?
|
|||
3
Игорь_МММ
04.12.17
✎
14:25
|
Произошла исключительная ситуация (Microsoft JET Database Engine): Ошибка синтаксиса (пропущен оператор) в выражении запроса 'TElems.UnitPos=TElems_2.ParentPOS
LEFT JOIN TNNomenclature TNNomenclature ON TElems.PriceID=TNNomenclature.ID'. |
|||
4
Ёпрст
04.12.17
✎
14:29
|
(3)
|FROM TElems TElems |
|||
5
Beduin
04.12.17
✎
14:29
|
(0) Ты поля проверил? Все в наличии есть.
|
|||
6
Ёпрст
04.12.17
✎
14:30
|
ну и лучше, норм алиясы задавать
|
|||
7
Игорь_МММ
04.12.17
✎
14:36
|
(4) Command.CommandText = "Select DISTINCT
| TElems_2.CommonPOS, | TElems_2.FurnType, | TNNomenclature.Name AS Nomenclature, | TElems_2.Name AS Name, | TElems_1.UnitPos, | TElems_2.ParentPOS, | TElems_2.Count |FROM TElems TElems_1 |LEFT JOIN TElems TElems_2 |ON TElems_1.UnitPos=TElems_2.ParentPOS |LEFT JOIN TNNomenclature TNNomenclature |ON TElems_1.PriceID=TNNomenclature.ID |ORDER BY TElems_1.UnitPos,TElems_2.FurnType"; та же ... : Произошла исключительная ситуация (Microsoft JET Database Engine): Ошибка синтаксиса (пропущен оператор) в выражении запроса 'TElems_1.UnitPos=TElems_2.ParentPOS LEFT JOIN TNNomenclature TNNomenclature ON TElems_1.PriceID=TNNomenclature.ID'. если без второго соединения все ОК. То же самое если убираю первое соедиение - тоже Ок. Что-то в соединениях ... между ними (5) все есть |
|||
8
пипец
04.12.17
✎
15:18
|
(7) хмм а если в SSMS визуально нарисовать ?
|
|||
9
Ц_У
04.12.17
✎
18:16
|
(7)
|FROM TElems TElems_1 |LEFT JOIN TElems TElems_2 что тут должно произойти? |
|||
10
Сергиус
05.12.17
✎
02:23
|
(7)
|LEFT JOIN TNNomenclature TNNomenclature |ON TElems_1.PriceID=TNNomenclature.ID Попробуй здесь дать псевдоним, отличный от имени таблицы, например TNNomenclature_1 |
|||
11
rphosts
05.12.17
✎
04:39
|
(7) ну вообще-то предикат соединения принято оборачивать в () для лучшей читаемости. А те поля по которым соединяете они соединяемы (со строкой неограниченой длины вам соединить не получится)?
|
|||
12
rphosts
05.12.17
✎
04:49
|
Count как имя поля - жесть!
|
|||
13
rphosts
05.12.17
✎
04:51
|
select a.[_Period], b._Fld1841RRef, c._Period
from [dbo].[_InfoRg1840] a left join [dbo].[_InfoRg1840] b on (a.[_Fld2027] = b.[_Fld2027]) left join [dbo].[_InfoRg1840] c on (a.[_Fld2032] = c.[_Fld2032]) отрабатывает на ура смотри что ты с чем там соединяешь |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |