Имя: Пароль:
1C
1C 7.7
v7: Коррелированный запрос, не нравится условие
0 aass
 
15.12.11
10:23
Почему ругается на условие dtos(Жур.date) не хочет воспринимать

ТекстЦенаПоз = "
|SELECT  
|        top 1 value
|FROM
|        1sconst as Константа  
|WHERE  
|          (dtos(Константа.date)<=dtos(Жур.date))
|ORDER BY
|        date desc, time desc
|";

   
ТекстЖурнал= "
|SELECT
|    Жур.Date,
|     iif(Р2.id<>$ПустойИД,Р2.DESCR,iif(Р1.id<>$ПустойИД,Р1.DESCR,'')) as [Группа],
|     $ДокОКС.Товар as PARENTEXT,
|    Р1.DESCR as Товар,
|    $ДокОКС.Количество as Количество,
|    $ДокОКС.Сумма as Сумма
|,("+ТекстЦенаПоз+") as Закупочная
|FROM
|    $ДокументСтроки.ОтчетКассовойСмены as ДокОКС
|LEFT JOIN
|    1SJourn as Жур ON Жур.IDDoc = ДокОКС.IDDoc
|LEFT JOIN  
|    $Справочник.Номенклатура as Р1 on $ДокОКС.Товар = Р1.id
|LEFT JOIN  
|    $Справочник.Номенклатура as Р2 on Р1.parentid = Р2.id
|WHERE  
|    dtos(Жур.date)+Жур.time+Жур.iddoc BETWEEN dtos(:НачДата~~) AND dtos(:КонДата~~)
|     AND
|    Жур.Closed = 1
|";


а вот так не ругается, хотя СпрЦены.PARENTEXT из основного запроса, что не так ?

ТекстОстаток = "
|
|SELECT
|    SUM(SP102)
|FROM
|    RG99 as РегОст
|WHERE
|    (РегОст.Period = :ДатаОст ~~)AND(РегОст.SP3603=$ПустойИД)
|AND(РегОст.SP101 = СпрЦены.PARENTEXT)
|
|";
1 aass
 
15.12.11
10:24
пардон v7, DBF
2 Кириллка
 
15.12.11
10:27
потому что у кривого vfpoledb провайдера проблема с коррелированными запросами в select-листе, когда одновременно используется TOP ORDER
3 aass
 
15.12.11
10:33
а так работает

ТекстЦенаПоз = "
|SELECT  
|top 1 value
|FROM
|1sconst as Константа  
|LEFT JOIN
|$Справочник.Цены as СпрЦены ON СпрЦены.ID = Константа.objid
|LEFT JOIN
|$Справочник.КатегорииЦен as СпрКатЦен ON СпрКатЦен.ID = СпрЦены.SP3787  
|LEFT JOIN
|$Справочник.Номенклатура as СпрНом ON СпрНом.ID = СпрЦены.PARENTEXT
|WHERE  
|(СпрКатЦен.DESCR = 'Закупочная')
|ORDER BY
|date desc, time desc
|";
4 aass
 
15.12.11
10:34
(2) а варианты обойти эту проблему,есть?
5 aass
 
15.12.11
10:40
вот в старых темах нарыл буду пробывать

Ёпрст3

75 - 24.11.11 - 09:44        (72) передавать дату из журнала вестимо.
Если болт в коррелированном селект листе, то делать лефт джоин с подзапросом, в котором получать нужную периодику.
Ошибка? Это не ошибка, это системная функция.