我有一个包含ClientID,ActionDate,Action和Result的表。

我需要选择在给定日期范围内仅具有特定操作/结果组合的不同客户。

为了显示:

  1. 我需要最后5个Action / Result是Call / NoAnswer的不同的clientID。
  2. 我需要过去30天内仅具有Call / NoAnswer的独特的clientID。

谢谢

#1楼 票数:2 已采纳

1。

select ClientID from
(
select 
  ClientID,
  Action,
  Result,
  row_number() over (partition by ClientID order by ActionDate desc) as num
from ClientActions
) T -- the latest 5 action/result
where rnum <= 5
group by ClientID
having MAX(case when Action='Call' and Result = 'NoAnswer' then 0 else 1 end) = 0

2。

select ClientID
from ClientActions
where DATEDIFF(DAY, ActionDate, GETDATE()) <= 30
group by ClientID
having MAX(case when Action='Call' and Result = 'NoAnswer' then 0 else 1 end) = 0

  ask by Peraklo translate from so

未解决问题?本站智能推荐:

2回复

计算每n条记录SQL

我有下表: 该表每15分钟将有一条记录。 我想每15分钟对这些记录SUM或Average一次。 因此,结果应为: 2017-10-01 00:00:00的SUM取自之前的5条记录,依此类推。 有谁知道如何做到这一点? 谢谢。
6回复

按T​​-SQL中的每N条记录分组

我在数据库上有一些性能测试结果,我想要做的是将每 1000 条记录分组(以前按日期升序排序),然后将结果与AVG聚合。 我实际上正在寻找一个标准的 SQL 解决方案,但是任何 T-SQL 特定的结果也很受欢迎。 查询如下所示:
2回复

SQL通过比较不同的字段选择一条记录

我的问题是以下。 我需要的帮助是仅在每个prp_hist_id的两个prp_response <> 1时都选择SELECT,以便它将列出那些prp_hist_id(DISTINCT) 例如,在这种情况下将仅选择prp_hist_id = 21,因为两个prp_response
9回复

在WHERE条件中获取SQL中的最后一条记录

我有loanTable包含两个字段loan_id和status 在这种情况下,我需要显示loan_id 1的最后Status ,即status 4.请在此查询中帮助我。
8回复

使用T-SQL插入n条记录

我想在表中添加可变数量的记录(天) 我已经看到了一个很好的解决方案: 但是可悲的是,这在UDF中不起作用(因为#temp和SET ROWCOUNT)。 知道如何实现吗? 目前,我正在使用WHILE和表变量来完成此操作,但是就性能而言,这并不是一个好的解决方案。
3回复

SQL查询,没有客户端联系人且没有活动客户端联系人的客户端

我需要查询以获取没有客户联系人记录的客户名称,如果有任何客户联系人,则它们将结束。 请参见下表结构。 表: 客户 表: Client_Contact 该查询将返回Johnson和Sean 。 Johnson没有客户联系人,因此它正在查询中 约翰有客户联系人,但所有客户联
2回复

在分组查询中选择以返回该组的最后一条记录

我有一个存储事件以及事件类型和预订 ID 的表,我的目标是对 BookingID 进行分组并返回第一个 EventDate、最后一个 EventDate 和最后一个 BC_EventType 目前我有这个 SQL: 它返回以下内容: 这很好,但是我需要一个显示 LAST BC_EventType I
2回复

在前M条记录之后选择前N条记录[关闭]

我正在开发一个应用程序,在我的情况下,我有一个表BookTable,它没有主键(至少到现在还没有),我希望能够检索记录,例如首先是前10名,然后是11-20,然后是21 -30,我希望我在这里阐明我的观点。 我看过Google,到目前为止,未找到任何解决方案。 希望我能在这里得到帮助。 谢