選擇與特定日期之後不同的選項

選擇與特定日期之後不同的選項

我有一個包含 3 個表格的資料庫:classesteachertaught

類別

  • ID(類號)
  • 標題(類別類型)
  • 費用(班級費用)

老師

  • 唯一整數(teacherNum)

教過的

  • classNum(外鍵)
  • TeacherNum(外鍵)
  • 日期欄位(班級日期)

我需要用 SQL 編寫查詢,該查詢將返回自 2015 年 8 月 6 日以來教授的獨特課程列表,按從最貴到最便宜的順序排序

我會為此使用不同的嗎?獲得所有獨特的結果或利用外鍵。

這行得通嗎?

答案1

是的,比如:

SELECT DISTINCT * 
FROM classes
WHERE ID IN 
(SELECT classNum  FROM taught WHERE date = CONVERT(...,Aug 6 2015 ))
ORDER BY cost ASC

答案2

我使用了以下構造...

CAST(FLOOR(CAST(@date as FLOAT)) as DateTime);

這透過將日期轉換為浮點數並截斷「時間」部分(即浮點數的小數)來從日期中刪除時間。

看起來有點笨重,但在我整天重複使用的大型資料集(約 100,000 行)上效果很好。

相關內容