CASE
nepoužívá se pro řízení logického toku... použijte IF
/ ELSE IF
místo toho:
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
Mějte na paměti... protože používáte SELECT *
a připojení k jiné tabulce na základě @TypeOfDayID
, pravděpodobně skončíte se zubatou sadou výsledků, což znamená, že budete mít různý počet sloupců podle toho, která větev se použije.
Programově s tím může být obtížné pracovat, takže by bylo dobré se vyhnout SELECT *
z tohoto důvodu, stejně jako z jiných důvodů...