CASE
används inte för logisk flödeskontroll... använd IF
/ ELSE IF
istället:
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
Kom ihåg... eftersom du använder SELECT *
, och gå med i en annan tabell baserat på @TypeOfDayID
, kommer du sannolikt att få en ojämn resultatuppsättning, vilket innebär att du har ett varierande antal kolumner beroende på vilken gren som tas.
Detta kan vara jobbigt att arbeta med programmatiskt, så det skulle vara en bra idé att undvika SELECT *
av denna anledning, såväl som andra skäl...