我希望在給定開始日期和結束日期的情況下,讓所有在同一天註冊和購買的客戶獲得。SQL Query查找在同一天註冊併購買的客戶
下面是模式:
用戶
--CustId
--PostedDate
訂購
--OrderId
--CustId
--PostedDate
我如何編寫一個查詢拉當天登記,並在特定日期內購買的訂單?
我希望在給定開始日期和結束日期的情況下,讓所有在同一天註冊和購買的客戶獲得。SQL Query查找在同一天註冊併購買的客戶
下面是模式:
用戶
--CustId
--PostedDate
訂購
--OrderId
--CustId
--PostedDate
我如何編寫一個查詢拉當天登記,並在特定日期內購買的訂單?
SELECT DISTINCT
Users.CustId
FROM
Users JOIN Order ON Users.CustId = Order.CustId
WHERE
DATE(Users.PostedDate) = DATE(Order.PostedDate)
AND Users.PostedDate BETWEEN @start_date AND @end_date`
這是假設PostedDate
是日期時間,而不是日期字段。如果它實際上是一個日期字段,則DATE(Users.PostedDate) = DATE(Order.PostedDate)
可以縮短爲Users.PostedDate = Order.PostedDate
,然後WHERE子句的那部分可以成爲索引使用的候選。
感謝richard.I感覺不好,因爲在發佈堆棧溢出問題之前,沒有多花些時間來找出解決方案。需要休息。 – Sam
如何
SELECT u.CustId FROM Users AS u
INNER JOIN Orders AS o
ON u.CustId = o.CustId AND u.Posted Date = o.PostedDate
WHERE u.PostedDate BETWEEN @Date1 AND @Date2
希望這有助於。
SELECT u1.CustId FROM Users u1, Order o1 WHERE u1.CustId = o1.CustId AND
u1.PostedDate = o1.PostedDate and o1.PostedDate between
to_date('<startdate>','<oracleformat>') and to_date('fromdate','<>')+1
這些不是完整的模式。是PostedDate日期或日期時間字段? –