簡體   English   中英

SQL Query查找在同一天注冊和購買的客戶

[英]SQL Query to find customers who registered and purchased on the same day

我希望得到所有在同一天注冊和購買的客戶給予一個開始和結束日期。

下面是架構:

用戶

--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子句的那部分可以作為索引使用的候選者。

怎么樣

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 * 
FROM Users, Order 
WHERE Users.CustId = Order.CustId AND 
      Users.PostedDate = Order.PostedDate
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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM