Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 创建sql查询以在时间范围内获取重复列值_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 创建sql查询以在时间范围内获取重复列值

Sql server 创建sql查询以在时间范围内获取重复列值,sql-server,sql-server-2008,Sql Server,Sql Server 2008,有人能帮我解答这个问题吗?我想得到24小时内重复多次的所有客户id的结果 SELECT O.Order_No, O.Customer_ID, O.DateOrdered, O.IPAddress, C.FirstName, C.LastName, CD.nameoncard FROM Order_No O INNER JOIN CardData CD ON O.card_id = CD.id INNER JOIN Customers C ON O.

有人能帮我解答这个问题吗?我想得到24小时内重复多次的所有客户id的结果

SELECT 
    O.Order_No, O.Customer_ID, O.DateOrdered, O.IPAddress,
    C.FirstName, C.LastName, CD.nameoncard
FROM 
    Order_No O
INNER JOIN 
    CardData CD ON O.card_id = CD.id
INNER JOIN 
    Customers C ON O.customer_id = C.customer_id   
ORDER BY
    O.order_no desc   
添加更多详细信息。。 因此,假设客户id为xx的订单是在04/23下午2:30下的,同样的,第二个订单是在04/23下午5:30下的,客户id为xx

我希望查询返回我的客户Id xx

谢谢

要获取在第一个订单之后发出订单的客户,可以使用以下查询:

select distinct A.Customer_ID
from Order_No A
inner join (select Customer_ID, min(DateOrdered) DateOrdered from Order_No group by Customer_ID ) B
  on A.Customer_ID = B.Customer_ID
  and A.DateOrdered - B.DateOrdered <= 1
  and A.DateOrdered > B.DateOrdered
获取任何时间内在少于或等于24小时内发出一个以上订单的所有客户

select distinct A.Customer_ID
from Order_No A
inner join Order_No B
  on A.Customer_ID = B.Customer_ID
  and A.DateOrdered > B.DateOrdered
  and A.DateOrdered - B.DateOrdered <= 1
自连接:

SELECT distinct O.Customer_ID
FROM 
Order_No O
inner join Order_No o2
on o.customerID = o2.customerID 
    and datediff(hour, o.DateOrdered, o2.DateOrdered) between 0 and 24
and o.Order_No <> o2.Order_No
这将返回在任何24小时内下过多个订单的所有客户ID


编辑以添加匹配记录不应为同一记录的联接条件。应退回同时下了两个不同订单的客户,但不能退回仅下了一个订单的客户

这个查询如何在24小时内获得所有客户id?当你说24小时时,你说的是同一天,或者实际上是24小时?你说的是最后24小时或任何24小时?是的,所以基本上,如果在第一次下订单的24小时内存在具有相同客户id的订单,这将返回O和O2中相同的订单。这就是为什么您需要有O.DateOrderedSELECT distinct O.Customer_ID FROM Order_No O inner join Order_No o2 on o.customerID = o2.customerID and datediff(hour, o.DateOrdered, o2.DateOrdered) between 0 and 24 and o.Order_No <> o2.Order_No