gpt4 book ai didi

sql - 使用 Group By 将Where条件添加到连接 View

转载 作者:行者123 更新时间:2023-12-05 01:17:52 25 4
gpt4 key购买 nike

我目前正在建立一个网站,人们可以在其中下订单,所以它有点像网上商店。 我想创建一个 View ,在其中可以轻松查看哪些用户超过 90 天没有下订单。

为此,我创建了这个 MS SQL View :

SELECT
dbo.AspNetUsers.Id,
dbo.AspNetUsers.FirstName,
dbo.AspNetUsers.LastName,
dbo.AspNetUsers.Email,
dbo.AspNetUsers.Street,
dbo.AspNetUsers.SignupDate,
MAX(dbo.Orders.OrderDate) AS OrderDate
FROM
dbo.AspNetUsers
INNER JOIN
dbo.Orders
ON dbo.AspNetUsers.Id = dbo.Orders.OrderUserId
GROUP BY
dbo.AspNetUsers.Id,
dbo.AspNetUsers.FirstName,
dbo.AspNetUsers.LastName,
dbo.AspNetUsers.Email,
dbo.AspNetUsers.Street,
dbo.AspNetUsers.SignupDate

现在这段代码仍然缺少检查日期是否早于 90 天的 where 条件。 WHERE dbo.Orders.OrderDate < DATEADD(day, -90, GETDATE()) 。我尝试在分组之前添加它,但这不起作用(它应该只检查最近的订单是否早于 90 天,这将检查是否有任何订单日期早于 90 天)。

那么我该把这个条件放在哪里才能达到想要的结果呢?

最佳答案

使用having而不是where检查聚合条件

GROUP BY ...
HAVING MAX(dbo.Orders.OrderDate) < DATEADD(day, -90, GETDATE())

关于sql - 使用 Group By 将Where条件添加到连接 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57284164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com