【发布时间】:2016-07-08 01:59:06
【问题描述】:
想知道您是否可以帮助我将公式从 excel 复制到 SQL Server 2008。我们正在尝试做的是计算客户致电时的重复呼叫次数,并测试他们是否在 7 天内回电。我已经在 excel 中完成了下面的练习,但是我发现很难在 SQL 中产生相同的结果。
Repeat Flag公式基本上是统计ID日期之后和7天内的记录数。即 2015 年 3 月 24 日的 2222 在 7 天内有 4 次通话。
Repeat Flag formula =COUNTIFS(B:B,B2,A:A,">" &A2,A:A,"<"&A2+8)
Date ID Repeat Flag
23/03/2015 1111 0
24/03/2015 2222 4
25/03/2015 2222 3
26/03/2015 2222 2
27/03/2015 3333 5
28/03/2015 2222 1
29/03/2015 2222 0
30/03/2015 3333 7
31/03/2015 3333 7
1/04/2015 3333 7
2/04/2015 3333 7
3/04/2015 3333 7
4/04/2015 3333 7
5/04/2015 3333 6
6/04/2015 3333 5
7/04/2015 3333 4
8/04/2015 3333 3
9/04/2015 3333 2
10/04/2015 3333 1
11/04/2015 3333 0
这是我的 SQL 尝试:
SELECT [CallID]
,[Date]
,[ID]
,[NoRepeat7days]
,[RepeatFlag]
, (SELECT count(CALLID) as CountR
FROM [CustomerData].[dbo].[RepeatCallers_testdata]
WHERE [ID] = [ID] AND
([Date] BETWEEN [Date] AND [Date]+7)) as ft
FROM [CustomerData].[dbo].[RepeatCallers_testdata]
【问题讨论】:
-
你几乎是对的。您需要为主查询分配一个别名,以确保 SQL Server 理解您的
[ID] = [ID]的含义
标签: sql sql-server sql-server-2008