2015-02-23 25 views
-1
SELECT 
    (SELECT Hours FROM Time WHERE Time.Pay_Date = s.Pay_Date) as Hours 
FROM Students s 
WHERE s.Pay_Date BETWEEN '2015-01-01' AND '2015-02-01' 

目前我的SQL查詢是這樣的我希望我的子查詢(小時)爲:如何在SQL子查詢計算之間使用?

SELECT Hours FROM Time WHERE Time.Pay_Date BETWEEN '2015-01-01' AND '2015-02-01' 

但s.Pay_Date犯規給我之間的2015年1' 月1日和「2015年2月1日」。有沒有解決的辦法?我知道可以簡單地將日期數字放進去,但對於我正在處理的查詢來說這並不理想。

感謝

在這種情況下
+1

「但s.Pay_Date不能這樣工作。」那是什麼意思? – dan08 2015-02-23 21:40:07

+0

您好dan08 當我查詢時,s.Pay_Date只等於'2015-01-01',並且不使用函數之間的 – 2015-02-23 21:41:03

+0

您可以將一些例子存儲在表和預期的結果? – 2015-02-23 21:43:01

回答

1

你需要一個簡單的join也糾正between聲明。

SELECT t.Hours 
FROM Time t join Students s on t.Pay_Date = s.Pay_Date 
WHERE s.Pay_Date BETWEEN '2015-01-01' and '2015-02-01' 
+0

嗨Farhang, 謝謝,但可以在子查詢內完成?我不得不使用子查詢的各種原因 丹尼爾 – 2015-02-23 21:51:15

+0

嗨,不客氣,是的,當然你也可以使用子查詢,但如果你看到成本和執行計劃,我認爲直接連接更好。 – jfun 2015-02-23 21:55:48