【发布时间】:2021-02-25 18:02:51
【问题描述】:
我想查询SQL Server最近30天内没有任何新产品的活跃商店。
这是表的架构
表Store
int | id |
string | status |
表Product
int | id |
string | name |
datetime | created_at |
int | store_id |
一开始我是这样写的
select s.*
from Store as s
join Product p on s.id = p.store_id
where s.status = 'active'
and p.created_at < DATEADD(day, -30, GETDATE())
显然,这是不对的,只要有 30 天之前创建的产品,就会查询所有商店。
【问题讨论】:
-
因此您需要找到每个商店的最大 created_at 值,然后针对目标日期进行测试。不同的方法来做到这一点 - 并确保您的商店在您的样本测试数据中没有产品。
-
@SM或者是的,max created_at 可能会起作用
标签: sql sql-server datetime