Проблема с запросом в TecDoc #732568


#0 by u2006
Доброго всем времени суток. Есть задача вытащить некоторые данные из TecDoc Подключаюсь через ADODB.Connection Простые запросы отрабатывает на ура, а вот запрос когда необходимо обращаться к 1 таблице 2 или более раз не отрабатывает. Вот пример простого запроса, писал просто для теста SELECT TOF_MANUFACTURERS.MFA_ID, TOF_MANUFACTURERS777.MFA_BRAND FROM TOF_MANUFACTURERS INNER JOIN TOF_MANUFACTURERS AS TOF_MANUFACTURERS777 ON TOF_MANUFACTURERS777.MFA_ID = TOF_MANUFACTURERS.MFA_ID Выдает следущее table or correlation name 'TOF_MANUFACTURERS' is not unique in block 1 Т.е я так понимаю не получается работать с 2 одинаковыми таблицами Может кто подскажет в чем проблема то может быть, понятно что руки кривые, но всётаки... премного благодарен
#1 by Ёпрст
алиясы для первой таблицы задай
#2 by u2006
Пробовал не помогает
#3 by Ёпрст
SELECT table1.MFA_ID, table2.MFA_BRAND FROM TOF_MANUFACTURERS as table1 INNER JOIN TOF_MANUFACTURERS AS table2 ON table1.MFA_ID = table2.MFA_ID
#4 by Ёпрст
нам отсюда не видно, что пробывал и как оно
#5 by u2006
Ну собственно такая ошибка на ваш запрос Ошибка при вызове метода контекста (Execute)     Recordset = Command.Execute; по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Transaction][ODBC Transbase Driver][Transbase ODBC TECDOC CD 1_2015] Transbase Kernel <TECDOC_CD_1_2015@comp>  error report: compile error: unexpected keyword: at line >6<: TOF_MANUFACTURERS as table1                    ^
#6 by u2006
я уже пробовал так, все аналогично
#7 by Ёпрст
TOF_MANUFACTURERS - такая табличка хоть есть базе то ?
#8 by u2006
Да, конечно
#9 by Ёпрст
так, че выдает ?
#10 by u2006
Вот такой запрос отрабатывает отлично SELECT     TOF_MANUFACTURERS.MFA_ID, FROM
#11 by Ёпрст
а через Open а не Execute ? и должен работать
#12 by u2006
Если бы работал, я бы не спрашивал )
#13 by Ёпрст
Покажи весь код
#14 by igork1966
TOF_MANUFACTURERS. MFA_BRAND, TOF_MANUFACTURERS777.MFA_BRAND AS MFA_BRAND777
#15 by u2006
Ну для примера из
#16 by u2006
Хм... попробую
#17 by igork1966
-->
#18 by Ёпрст
Тест на вшивость:
#19 by 13_Mult
+1
#20 by Ёпрст
намекаешь на алияс поля в селекте ? :) Ну, так тогда еще:
#21 by u2006
Не совсем понял SELECT TOF_MANUFACTURERS.MFA_ID, TOF_MANUFACTURERS. MFA_BRAND, TOF_MANUFACTURERS777.MFA_BRAND AS MFA_BRAND777 FROM TOF_MANUFACTURERS INNER JOIN TOF_MANUFACTURERS AS TOF_MANUFACTURERS777 ON TOF_MANUFACTURERS777.MFA_ID = TOF_MANUFACTURERS На что это должно повлиять? Ошибка таже
#22 by u2006
т.е для ситуации когда поле не нужно в селекте, труба?
#23 by u2006
Бывает что таблица нужна для соединения и потом дальнейших соединений
#24 by u2006
Не помогло, счас попробую с open
#25 by Сергиус
Попробуй название псевдонима таблицы без AS, т.е. SELECT .. FROM TOF_MANUFACTURERS T1 INNER JOIN TOF_MANUFACTURERS T2 ON T1.MFA_ID = T2.MFA_ID
#26 by u2006
спс попробую, по рез отпишусь, счас на обед убегаю )))
#27 by Ёпрст
Хз, че там автор пробует, но должно работать всегда
#28 by Сергиус
особенностью модицификации языка sql,который используется в Текдок, является в частности то, что псевдонимы таблиц задаются без AS. А просто через пробел.
#29 by Сергиус
+ По крайней мере так было несколько лет назад..
#30 by u2006
Вопрос закрыт. А то я думаю что с ума начал сходить. Респект
#31 by Ёпрст
это врят ли, в t-sql тоже можно не указывать as нигде (в оледб надо. например) сумневаюсь, что в текдоке не надо указывать as
#32 by u2006
Все спасибо за содействие )))
#33 by u2006
А какие еще грабли есть? Не подскажите
#34 by u2006
Во споткнулся дальше на граблях текдока a function 'IFNULL(char(*),char(*))' does not exist in the database
#35 by Сергиус
Погляди эту тему к примеру, как строятся запросы.
#36 by Сергиус
+ а в твоем случае нужна функция nvl Пример: nvl(sup_cou.sup_brand, sup_null.sup_brand) supplier.
#37 by Сергиус
Даже на мисте есть тема про это)
#38 by u2006
Огромное спасибо. То что на мисте есть это я знаю. Можно сказать с этой темы и начал )))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С