CASE
n'est pas utilisé pour le contrôle de flux logique... utilisez IF
/ ELSE IF
à la place :
declare @TypeofDayID int
set @TypeofDayID = (Select TypeofDayID from RepInfo where RepInfoID = @RepInfoID)
IF @TypeofDayID = 1
Select *
from RepInfo RD inner join SellingInfo S on S.RepInfoID = @RepInfoID
ELSE IF @TypeofDayID = 2
Select *
from RepInfo RD inner join UpgradingInfo U on U.RepInfoID = @RepDailyID
ELSE IF @TypeofDayID = 9 or @TypeofDayID = 10
Select *
from RepInfo RD inner join DeliveryInfo D on D.RepDailyID = @RepDailyID
Gardez à l'esprit... puisque vous utilisez SELECT *
, et rejoindre une autre table basée sur @TypeOfDayID
, vous obtiendrez probablement un ensemble de résultats irrégulier, ce qui signifie que vous aurez un nombre variable de colonnes en fonction de la branche prise.
Cela peut être pénible à utiliser par programmation, donc ce serait une bonne idée d'éviter SELECT *
pour cette raison, ainsi que d'autres raisons...