實現循環我有我的SQL Server數據庫FACULTY_RECORDS
& SCHOOL_RECORDS
兩個表。我有一個包含約他們在表FACULTY_RECORDS
了講座,幷包含由學校分配給院系對他們的主題進行演講時隙行院系填寫數據行。表FACULTY_RECORDS
列LECTURE_START_TIME
和學校提到了格式時隙00' 列LECTURE_TIME_SLOT
提供給教師0900-1200「:需要幫助的SQL查詢
的教師填補了他/她的講座開始時間格式爲'10:15在表SCHOOL_RECORDS
。
現在,我有一個SQL查詢其是否通過教師對他特定的主題進入時間落在由學校或沒有分配的時隙。但是,對於SQL查詢,我得到多個輸出行,因爲相同的開始時間落在多個時間段中。然而,如果演講開始時間落在分配給同一主題的時間段內,我要求查詢僅提供一個輸出。
請參閱我的SQL查詢:
SELECT
a.FACULTY,
a.SUBJECT,
a.LECTURE_DATE,
a.LECTURE_START_TIME
FROM
(SELECT
b.LECTURE_TIME_SLOT, b.FACULTY, b.SUBJECT, b.LECTURE_DATE,
CAST(LEFT(b.LECTURE_TIME_SLOT, 2) + ':' + RIGHT(LEFT(b.LECTURE_TIME_SLOT, 4), 2) AS TIME) AS StartHours,
CAST(LEFT(RIGHT(b.LECTURE_TIME_SLOT, 4), 2) + ':' + RIGHT(b.LECTURE_TIME_SLOT, 2) AS TIME) AS EndHours
FROM
@FACULTY_RECORDS AS a, @SCHOOL_RECORDS AS b) AS b
JOIN
@FACULTY_RECORDS AS a ON a.FACULTY = b.FACULTY
AND a.SUBJECT = b.SUBJECT
AND a.LECTURE_DATE = b.LECTURE_DATE
WHERE
CAST(a.LECTURE_START_TIME AS TIME) >= b.StartHours
AND CAST(a.LECTURE_START_TIME AS TIME) <= b.EndHours
請參考以下圖片:
FACULTY_RECORDS & SCHOOL_RECORDS
Outputs: Lectures not matching & matching the time slots
MySQL是不是SQL服務器。你在用哪個? – shmosel
對不起。我正在使用Microsoft SQL Server 2008,而不是mysql。 –
這對你有用嗎? https://programmingistheway.wordpress.com/2015/04/16/sql-server-loop-over-a-table/ –