2016-01-20 2 views
0
SELECT TOP (1) 
    B.StartDate, 
    CASE 
     WHEN B.startdate < getdate() THEN 1 
     WHEN B.startdate > GETDATE() THEN 2 
     ELSE 3 
    END AS Status, 
    CASE 
     WHEN BU.UserID = @UserID THEN 1 
     ELSE 2 
    END AS Ownership 
FROM 
    TblA AS B 
INNER JOIN 
    TblB AS BF ON B.ID = BF.Id 
INNER JOIN 
    TblC AS BU ON B.ID = BU.ID  
WHERE 
    B.Deleted = 'False' 
ORDER BY 
    Status, Ownership 

Я пытаюсь выполнить вышеуказанный запрос в SQL Server CE, где он не позволяет мне объявлять переменную в datatable (xsd). И, как видно, я не могу позволить себе писать несколько запросов, потому что это CE. Итак, есть ли какое-нибудь обходное решение, учитывая мои условия?SQL Case statement с параметром в нем

@UserID - он продолжает говорить, что не существует в наборе параметров - где, как я думаю, потому что я использую его в CASE, поэтому его жалобы.

enter image description here

enter image description here

+0

Вы получаете ошибку .NET, но только показываете SQL. Пожалуйста, покажите, как вы настроили запрос ('sqlParameter.ParameterName =" @UserID ",' sqlCommand.Parameters.Item ("@ UserID") .Value = userId; ', ...) –

+0

Не очень уверен, что я получил ваш вопрос. Но я пытаюсь создать таблицу данных в xsd и создать на ней метод заполнения - вернуть строки. –

+0

Боюсь, я не могу помочь здесь из-за отсутствия опыта. Я надеюсь, что другие могут. –

ответ

0

оператор Case можно использовать переменную для проверки.

Не так много репутации для комментариев, просто спрашивая здесь Вы можете предоставить более подробную информацию по вашим требованиям.

Вы указали переменную перед этим сегментом sql, если не просто попытаетесь добавить следующее: объявить @UserID integer = 1, а затем выполнить инструкцию еще раз.

+0

Просто добавлена ​​фактическая ошибка, возникающая при попытке ее сохранения. –

+0

Я пытаюсь сделать выше в SQL CE, где он не позволяет мне объявлять переменную в datatable (xsd) –

+0

, если вы используете этот запрос из .net, то вы можете заменить эту переменную из кода ... – shubham