CASE
не се използва за контрол на логически поток... използвайте IF
/ ELSE IF
вместо това:
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
Имайте предвид... тъй като използвате SELECT *
и присъединяване към различна таблица въз основа на @TypeOfDayID
, вероятно ще се окажете с назъбен набор от резултати, което означава, че ще имате различен брой колони в зависимост от това кой клон е зает.
Това може да е трудно да се работи с програмиране, така че би било добра идея да избягвате SELECT *
по тази причина, както и по други причини...