Tôi đang cố gắng thêm một trường hợp hoặc nếu câu lệnh trong mệnh đề where của truy vấn SQL của tôi.
Tôi có một bảng thời gian hành trình với ngày bắt đầu và ngày kết thúc và trường boolean cho mỗi ngày để biểu thị nơi hành trình xảy ra vào ngày đó. Dưới đây là những gì tôi có cho đến nay, nhưng tôi nhận được lỗi cú pháp không chính xác:tuyên bố trường hợp trong mệnh đề where - SQL Server
declare @date datetime
set @Date = '05/04/2012'
declare @day nvarchar(50)
set @day = 'Monday'
Select * From Times
WHERE (StartDate <= @Date) AND (EndDate >= @Date)
CASE WHEN @day = 'Monday' THEN
AND (Monday = 1)
WHEN @day = 'Tuesday' THEN
AND (Tuesday = 1)
ELSE
AND (Wednesday = 1)
END
Trông với tôi như thể bạn có vấn đề về thiết kế trên bàn, Không có cách nào bạn nên có cột Thứ hai, thứ ba, thứ tư, vv Bạn shoudlhavea daya cột và cư nó với ngày bạn muốn hoặc một giá trị số đó là một tra cứu cho ngày ayou muốn. Nếu có nhiều hơn một ngày được áp dụng, sau đó sử dụng một bảng liên quan. – HLGEM