Lorsque j'exécute la requête ci-dessous sur SQL Server, elle fonctionne correctement avec une ou plusieurs valeurs uniques. Mais lorsque j'essaie d'exécuter la même chose sur le jeu de données SSRS, une erreur est générée pour plusieurs valeurs.Une expression de type non booléen spécifiée dans un contexte où une condition est attendue près de ','
ERROR: SSRS: An expression of non boolean type specified in a context where a condition is expected near ','. Incorrect syntax near the keyword 'ELSE'.
Fonctionne correctement avec une valeur unique. Vous ne savez pas quel est le problème ou existe-t-il un autre moyen d'écrire cette requête?
DECLARE @UserTeam VARCHAR(max) = 'Team1,Team2,Team3,Team4,Team5,Team6,'''
-- Values can inculdes null. if user select blank and Team1,Team2 we need to pull data which is null, Team1, Team2
IF Object_id('tempdb.dbo.#Team', 'U') IS NOT NULL
DROP TABLE #team;
SELECT item AS Team
INTO #team
FROM dbo.FNSPLIT(@UserTeam, ',')
IF @UserTeam = ''
BEGIN
SELECT U.username,
T.teamcode
FROM [User].vwuser u
LEFT JOIN[User].userteam UT
ON U.userid = UT.userid
LEFT JOIN [User].team AS T
ON T.teamid = Ut.teamid
WHERE T.teamcode IS NULL
ORDER BY U.username
END
ELSE
BEGIN
SELECT U.username,
T.teamcode
FROM [User].vwuser u
LEFT JOIN [User].userteam UT
ON U.userid = UT.userid
LEFT JOIN [User].team AS T
ON T.teamid = Ut.teamid
JOIN #team tm
ON T.teamcode = tm.team
WHERE (U.username NOT LIKE '%System%')
ORDER BY U.username
END
Oui, je donné « » pour représenter comme nulle pour expliquer. Parce que je ne suis pas sûr quelle est la valeur qu'il passe si je sélectionne vide déposé dans le paramètre SSRS – crony