SQL Server:如何在日期中具有满足2个条件的hading子句

问题描述 投票:0回答:1

我有一个having子句,该子句返回所有超过5天的付款。本质上说,如果付款时间为5天或以上且类型为1,则显示该付款。现在,如果类型0和类型1的付款时间超过5天,我现在想要它,然后显示它。类型0和1都将拥有一个他们将共享的客户名,所以我想做的是这个

  • 客户A的0类付款已使用7天,而1类的付款已使用2天,然后不显示
  • 客户B类型0的付款已使用6天,而类型1的付款则已使用8天,然后显示

代码:

select distinct MAX(paymentDate) as payment, type, customer
group by payment
having datediff(day, MAX(paymentDate), getdate()) > 5 and type = 1

自从我学习SQL以来,任何建议都会很棒。我们还需要在子句中具有Max总计,因为我们只需要为客户提供最新的付款日期并输入。

sql sql-server having
1个回答
0
投票

我认为您正在寻找:

select p.*
from payments p
where type = 1 and
      paymentDate < dateadd(day, -5, convert(date, getdate()));

我不明白为什么在这里使用聚合。

© www.soinside.com 2019 - 2024. All rights reserved.