В чем ошибка?

Внес исправления в одно из условий запроса. Вот оригинал:

(SELECT CASE
When [tbl_Demand].[StoimPredlDo] IS NULL OR
     [tbl_Demand].[StoimPredlDo] = 0 OR
     [tbl_OfferingC].[StoimPredlDo] IS NULL OR
     [tbl_OfferingC].[StoimPredlDo] = 0
THEN 1
WHEN [tbl_Demand].[StoimPredlDo] >=
     [tbl_OfferingC].[StoimPredlDo]
THEN 1
ELSE 0
END) = 1
AND
(SELECT CASE
When [tbl_Demand].[StoimPredl] IS NULL OR
     [tbl_Demand].[StoimPredl] = 0 OR
     [tbl_OfferingC].[StoimPredlDo] IS NULL OR
     [tbl_OfferingC].[StoimPredlDo] = 0
THEN 1
WHEN [tbl_Demand].[StoimPredl] =
     [tbl_OfferingC].[StoimPredlDo]
THEN 1
ELSE 0
END) = 1

Вот новый вариант:

-- Сравнение цены
(SELECT CASE
-- Аренда: сравниваем значение "От" предложения и "До" спроса.  
When
    [tbl_Demand].[CurOperationID] = 'f2ed333e-6576-4f6f-b5c1-4268464dc30a' OR
    [tbl_Demand].[CurOperationID] = '5b6be3a4-c10d-4db1-9c9b-5aad551a7a45'
Then
    (SELECT CASE When
        [tbl_Demand].[StoimPredlDo] IS NULL OR
        [tbl_Demand].[StoimPredlDo] = 0 OR
        [tbl_OfferingC].[StoimPredl] IS NULL OR
        [tbl_OfferingC].[StoimPredl] = 0
    Then 1 when
        [tbl_Demand].[StoimPredlDo] >=
        [tbl_OfferingC].[StoimPredl]
    Then 1 else 0 end)
-- Продажа: сравниваем значение "до" предложения и "до" спроса (если есть),
-- либо значение "от" спроса (если нет зн. "до").
When
    [tbl_Demand].[CurOperationID] = '686ef082-f59f-436d-b06c-b18da2a8d8c7'
Then
    (SELECT CASE When
        [tbl_OfferingC].[StoimPredlDo] IS NULL OR
        [tbl_OfferingC].[StoimPredlDo] = 0
    Then 1 when
        [tbl_Demand].[StoimPredlDo] IS NULL OR
        [tbl_Demand].[StoimPredlDo] = 0 OR
        [tbl_Demand].[StoimPredl] IS NULL OR
        [tbl_Demand].[StoimPredl] = 0
    Then 1 when
        [tbl_Demand].[StoimPredlDo] IS NOT NULL AND
        [tbl_Demand].[StoimPredlDo] > 0 AND
        [tbl_Demand].[StoimPredlDo] >= [tbl_OfferingC].[StoimPredlDo]
    then 1 when
        [tbl_Demand].[StoimPredl] IS NOT NULL AND
        [tbl_Demand].[StoimPredl] > 0 AND
        [tbl_Demand].[StoimPredl] = [tbl_OfferingC].[StoimPredlDo]
    then 1 else 0 end) else 0 end) = 1

Но при открытии датасэта стала появляться ошибка:
Ошибка выполнения метода 'amiOnlyPublishedOnExecute'. Ошибка открытия источника данных "ds_SearchResultForQueries".
Оригинальное сообщение об ошибке: Multiple-step OLE DB operation generated errors. Check each OLE DB status value, if available. No work was done.

Parameter[3] :CurOperationID - invalid ParamType (Status = 1h).
Parameter[4] :PublishedOnly - invalid ParamType (Status = 1h)

Подскажите, в чем проблема? Во вложении - xml файлы select запросов, оригинальный и новый.

Нравится

2 комментария

Как бы не смешно это звучало, но я думаю Вы ошиблись в комментариях в sql :) Уберите символы двоеточия.

Да, спасибо.

Показать все комментарии