CASE wordt niet gebruikt voor logische flow control... gebruik IF / ELSE IF in plaats daarvan:
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
Onthoud... aangezien je SELECT * . gebruikt , en deelnemen aan een andere tabel op basis van @TypeOfDayID , zult u waarschijnlijk eindigen met een gekartelde resultatenset, wat betekent dat u een variërend aantal kolommen zult hebben op basis van welke vertakking wordt genomen.
Dit kan lastig zijn om programmatisch mee te werken, dus het is een goed idee om SELECT * te vermijden om deze reden, evenals om andere redenen...