Fragen, ob Sie mir helfen können, eine Formel von Excel zu SQL Server 2008 zu replizieren. Wir versuchen, die Anzahl der Wiederholungsanrufe zu zählen, wenn ein Kunde anruft und testet wenn sie in 7 Tagen zurückrufen. Ich habe die Übung unten in Excel gemacht, aber ich finde es schwierig, die gleichen Ergebnisse in SQL zu produzieren.Anzahl der Wiederholungsanrufer in einem rollenden 7-Tage-Test
Die Formel "Wiederholungsmarkierung" zählt grundsätzlich die Anzahl der Datensätze nach dem Datum der ID und innerhalb von 7 Tagen. I.e 2222 am 24/03/2015 hat 4 Anrufe innerhalb von 7 Tagen.
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
Hier ist mein SQL Versuch:
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]
Sie sind fast richtig. Sie müssen einen Alias für die Hauptabfrage zuweisen, um sicherzustellen, dass SQL Server versteht, was Sie mit Ihrem '[ID] = [ID]' gemeint sind. – cha