我的情景:我有一個網站,其中有事件日曆&預訂表爲訪客預訂他們的訪問讓我們說一些花園xyz。當在這個花園裏發生一個事件時,遊客不能去花園。T-SQL查詢使用可用日期填充下拉列表
事件日曆由管理層維護,如果事件發生於2012-06-16直到2012-06-20 &這個事件他們關閉花園的任何訪客。
在預訂的另一邊,我必須在下拉菜單或某個彈出日曆中顯示訪客的可用日期,這將阻止在活動日曆中預訂的日期。
事件數據存儲在Event_Calender表具有像
Event_ID
Event_Name
Event_Start_Date
Event_End_Date
Event_Start_Time
Event_End_Time
Event_Block_Visitor
領域重要的任何一天只有50遊客被允許參觀花園 和訪客數據是Visitor_Booking表表結構店
Booking_ID
Booking_Date
Visitor_Name
No_Of_Visitor
EMail_ID
Contact_No
預訂表格有一個下拉列表,它應該顯示可用日期基於一個
- 日期未預訂或阻止事件壓延
- 如果6月28日50訪問者然後6月28日已經取得預訂在可用的預訂日期表應該不會出現。
我的表結構有點複雜,然後在示例中顯示。
如果有人能以最好的方式做到這一點,我將不勝感激。
我想用一個查詢&隨着其他查詢我試圖從Visitor_Booking
表50預訂生成預約日期,以從Event_Calender Table
Booked_Dates
。
這會給我預訂的所有日期。現在我有基於這個被阻止的日期如何生成可用於訪問的日期。
CTE查詢,以便從日曆甚至產生被預訂日期
注:與查詢結果的一個問題一直結果是相關的查詢獲取比指定日期舊的結果。這是由於運算符優先級
腳本至今:
;WITH Calendar
AS (SELECT EventID,
EventTitle,
EventStartDate,
EventEndDate,
EventEnumDays,
EventRecurring,
EventStartTime,
EventEndTime,
EventStartDate AS PlannedDate,
EventType,
EventCategory
FROM EventCalender
WHERE EventActive = 1
AND LanguageID = 1
AND EventBlockDate = 1
UNION ALL
SELECT EventID,
EventTitle,
EventStartDate,
EventEndDate,
EventEnumDays,
EventRecurring,
EventStartTime,
EventEndTime,
Dateadd(dd, 1, PlannedDate),
EventType,
EventCategory
FROM Calendar
WHERE EventRecurring = 1
AND Dateadd(dd, 1, PlannedDate) <= EventEndDate)
SELECT EventID,
EventStartDate,
EventEndDate,
PlannedDate AS [EventDates],
EventStartTime,
EventEndTime,
Cast(EventStartDate AS DATETIME) + '' + Cast(EventStartTime AS DATETIME) AS DT,
EventTitle,
EventType,
EventCategory,
Datename(weekday, PlannedDate) AS [WEEKDAY],
Getdate() AS [YYYY/MM/DD]
FROM Calendar
WHERE PlannedDate >= Getdate()
AND ',' + EventEnumDays + ',' LIKE '%,' + Cast(Datepart(dw, PlannedDate) AS CHAR(1)) + ',%'
OR EventEnumDays IS NULL
ORDER BY EventID,
PlannedDate
OPTION (maxrecursion 0)
我完成了Event Calender與Full Calender的集成,以便我可以從Event_Calender生成預訂日期。我正在尋找實現的想法,因爲我想使用sql查詢生成日期,而不是根據已經預訂的日期在C#中編寫一些邏輯。我將添加和圖像顯示我的CTE查詢,即使這給我一點不想要的結果,因爲它也顯示日期的結果,這些日期的結果少於where子句中的指定日期。我將在片刻中添加圖像。 – Learning
把問題的查詢,讓其他人可以建議你改善查詢或錯誤。 –
查詢也是問題的一部分 – Learning