我正在使用SQL Server 2012,我想創建一個查詢,可以在gridview中使用。在SQL中的日期之間選擇數據
基本上,數據是狀態列表(受限制,不可用和可用),並且每個數據都在其旁邊有一個日期時間。
我想在我的gridview中顯示某個狀態持有時的日期和狀態。
因此,例如
的另一個問題我已經是即如果狀態今天我需要證明改爲網格的頂線。
我的SQL技能沒有達到這個水平,所以提供的任何幫助都會很棒。
我正在使用SQL Server 2012,我想創建一個查詢,可以在gridview中使用。在SQL中的日期之間選擇數據
基本上,數據是狀態列表(受限制,不可用和可用),並且每個數據都在其旁邊有一個日期時間。
我想在我的gridview中顯示某個狀態持有時的日期和狀態。
因此,例如
的另一個問題我已經是即如果狀態今天我需要證明改爲網格的頂線。
我的SQL技能沒有達到這個水平,所以提供的任何幫助都會很棒。
在2012 MSSQL你可以使用LEAD()功能
select Status,
StartDate,
LEAD(StartDate, 1,null)
OVER (ORDER BY startDate)
as EndDate
FROM T
ORDER BY StartDate
SELECT
Status_Current.yourDate AS Date_From,
Status_Next.yourDate AS Date_To,
Status_Current.yourStatus AS Status
FROM
yourData AS Status_Current
LEFT JOIN
yourData AS Status_Next
ON Status_next.yourData = (SELECT TOP 1 lookup.yourDate
FROM yourData AS lookup
WHERE lookup.yourDate > Status_Current.yourDate
ORDER BY lookup.yourDate ASC
)
ORDER BY
Status_Current.yourDate DESC
dateTo是由用戶輸入或通過你傳遞或要計算它爲當前的日期? – SoftSan