CASE
nie jest używany do kontroli przepływu logicznego... użyj IF
/ ELSE IF
zamiast tego:
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
Pamiętaj... ponieważ używasz SELECT *
i dołączanie do innej tabeli na podstawie @TypeOfDayID
, prawdopodobnie otrzymasz postrzępiony zestaw wyników, co oznacza, że będziesz mieć różną liczbę kolumn w zależności od wybranej gałęzi.
Może to być trudne do pracy programowej, więc dobrym pomysłem byłoby unikanie SELECT *
z tego powodu, a także z innych powodów...