CASE
không được sử dụng để điều khiển luồng logic ... hãy sử dụng IF
/ ELSE IF
thay vào đó:
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
Hãy ghi nhớ ... vì bạn đang sử dụng SELECT *
và tham gia vào một bảng khác dựa trên @TypeOfDayID
, bạn sẽ có thể kết thúc với một tập hợp kết quả lởm chởm, có nghĩa là bạn sẽ có một số cột khác nhau dựa trên nhánh nào được lấy.
Điều này có thể gây khó khăn khi làm việc với chương trình, vì vậy bạn nên tránh SELECT *
vì lý do này, cũng như lý do khác ...