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...