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, поэтому его жалобы.
Вы получаете ошибку .NET, но только показываете SQL. Пожалуйста, покажите, как вы настроили запрос ('sqlParameter.ParameterName =" @UserID ",' sqlCommand.Parameters.Item ("@ UserID") .Value = userId; ', ...) –
Не очень уверен, что я получил ваш вопрос. Но я пытаюсь создать таблицу данных в xsd и создать на ней метод заполнения - вернуть строки. –
Боюсь, я не могу помочь здесь из-за отсутствия опыта. Я надеюсь, что другие могут. –