Имя: Пароль:
1C
1C 7.7
v7: Профи помогите с запросом 1с++ dbf
0 AlexS1C
 
18.04.13
20:37
Нужно получить курс (переодический реквизит спр валюты) в запросе на дату документа в выборке! Если дата устанавливать как параметр то все ок, но нужно на дату документа:
ТекстЗапроса = "SELECT
   |Док.IDDoc as [Док $Документ.НакладнаяТоварыОпт]
   |,$Док.Валюта As [Валюта $Справочник.Валюты]
   |,Журнал.Date as Дата
   |,Курс.Value as Курс
   |FROM $Документ.НакладнаяТоварыОпт AS Док
   |LEFT JOIN 1SJOURN AS Журнал ON Док.IDDoc = Журнал.IDDOC
   |LEFT JOIN (
   |          SELECT  
   |          c_dt.objid as objid
   |         ,c_dt.value as value
   |          FROM 1sconst as c_dt
   |          WHERE
   |               c_dt.date IN (SELECT MAX(c.date)  
   |               FROM 1sconst as c
   |               WHERE
   |               (c.date <= :НачДата~~) AND (c.id =   $ИсторияРеквизита.Валюты.Курс) AND (c.objid = c_dt.objid)
   |          )AND c_dt.id = $ИсторияРеквизита.Валюты.Курс
   |) as Курс ON Курс.objid = $Док.Валюта  
   |";    
как вместо :НачДата~~ подставить Журнал.Date???? когда подставляешь то пишет не найдена колонка!!!!!!!!!  Заранее благодарен если кто подскажет!!!
1 AlexS1C
 
18.04.13
20:38
Почему во вложенном запросе не хочет видеть колонку Журнал.Date??? хотя в другом вложенном запросе  (c.objid = c_dt.objid) видит же  c_dt.objid???? Кстати в SQLite такой проблемы почему то нет!
2 rt001
 
19.04.13
00:54
у вас вложенный запрос 2го уровня, т.е. вложение во вложенном
SQL 2000 транслирует джойны только на 1й уровень вложенности
3 rt001
 
19.04.13
00:59
и не только SQL 2000 но и драйвер DBF
на SQL 2005 уже можно было бы реализовать такую конструкцию
ну и лайт судя по всему уже тоже это поддерживает

кстати, вместо IN() лучше EXISTS()