CASE
tidak digunakan untuk kontrol aliran logis... gunakan IF
/ ELSE IF
sebagai gantinya:
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
Perlu diingat... karena Anda menggunakan SELECT *
, dan bergabung ke tabel yang berbeda berdasarkan @TypeOfDayID
, Anda mungkin akan mendapatkan kumpulan hasil yang bergerigi, artinya Anda akan memiliki jumlah kolom yang bervariasi berdasarkan cabang mana yang diambil.
Ini bisa sulit untuk dikerjakan secara terprogram, jadi sebaiknya hindari SELECT *
untuk alasan ini, serta alasan lainnya...