繁体   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