SQL Server:返回客户最少日期

Posted

技术标签:

【中文标题】SQL Server:返回客户最少日期【英文标题】:SQL Server : returning customers with minimum dates 【发布时间】:2021-01-23 23:44:58 【问题描述】:

我正在尝试运行一个查询,该查询将返回昨天创建了第一个申请的所有客户 ID。我一直在纠结如何使用MIN 函数和HAVING

WHERE 子句中的语句用于将日期与昨天进行比较,但我一直卡在如何编写它以显示公司昨天的第一个/最小开始日期。

下面是添加一些颜色的示例:

SELECT
    P.CUSTOMERID,
    M.CREATEDDATE
FROM 
    DBO.MATCH M
INNER JOIN 
    DBO.POSITION P ON M.REQUISIIONID = P.REQUISITIONID
WHERE
    DATEADD(d, (DATEDIFF(d, 0, m.CREATEDDATE)), 0) = DATEADD(d, (DATEDIFF(d, 0, GETDATE() - 1)), 0)

【问题讨论】:

【参考方案1】:

我认为您想group by 客户,并使用having 子句进行过滤:

select p.customerid, min(m.createddate) min_createddate
from dbo.match m
inner join dbo.position p on m.requisiionid = p.requisitionid
group by p.customerid
having min(m.createddate) = dateadd(day, -1, convert(date, getdate())

【讨论】:

以上是关于SQL Server:返回客户最少日期的主要内容,如果未能解决你的问题,请参考以下文章

查找在 SQL Server 2014 中拥有多个帐户的客户的真正开始结束日期

在 SQL Server 2008 中计算到期日期

SQL Server:来自多行的最新属性集和日期

SQL 无法让 WHERE EXISTS 子句正常工作,并且仅返回在特定日期内具有客户端类型的行

更新 SQL Server 中的多条记录

ConvertZone() 使用 TZDB SQL Server 区域支持返回 NULL