i eine TabelleFinden Sie Differenz zwischen Enddaten durch den Vergleich Reihen
----------
User
----------
userID(pk)
startdate // update : i am not using this field.
enddate
i zwischen dem end_dates zwischen den Zeilen vergleichen muß zu vergleichen, ob es mehr als 3 Tage sind und der Benutzer-ID zählen.
i ähnlich etwas tue zu diesem
WHILE @@FETCH_STATUS = 0
BEGIN
select @lastrowID = max(rowid) from @User
if (@userid = (select userId from @User where rowid = @lastRowID))
begin
update @User set NextEndDate= @endDate where rowid = @lastRowID and userid = @userid
end
else
begin
insert @UserTable (userid, EndDate,NextEndDate) values (@userid, @endDate,@NextEndDate)
end
END
meine Idee ist, um den Tisch zu Schleife und erstellen Sie ein Weiterende Datum und dann den Vergleich mit datediff finden. Ich bin mit dem ersten Teil des Nextend-Datums fest und ich glaube, der zweite Teil des Vergleichs wäre einfach. Ich stecke dazwischen.
meine frage ist ich mache das richtige, es wird ziemlich kompliziert. Ich bin verwirrt, ob das Ergebnis über SQL-Abfrage erhalten oder verwenden Sie C# bei Code hinter Linq oder etwas ähnliches.
aktualisieren: Sorry, wenn ich bei der Erklärung meines Szenarios nicht klar war: Ich versuche, die Zählung zu finden, nicht wie oft ein Kunde besucht hat. Beispiel: Benutzer-ID: 1 haben können besucht täglich oder einmal im Monat. also muss ich die Zählung bekommen (Häufigkeit des Benutzerbesuchs). so, wenn die Benutzer Enddatum besucht war
userid enddate
1 1/1/2010
1 1/2/2010 count 1
1 1/10/2010 count 2 difference is more than 3 days
1 1/13/2010 count 2 (because diff is less than 3 days)
das ist, wie ich zählen sollte, das ist yi versuchte Cursor zu verwenden, die zu erschweren wurde für mich zu lösen. Ich schätze für Ihre Führung.
Welche Version von SQL Server? – Donnie
Ich sehe Sie nirgends in dieser Cursorschleife zählen. Kannst du klar erklären, was du versuchst zu bekommen? Es könnte sehr gut möglich sein, dies ohne einen Cursor zu tun. – cdonner
Version SQL Server 2008. @ Cdonner Ich bin im ersten Teil der Erstellung eines Nextenddate stecken, so dass ich mit dem Nextenddate und Enddatum in der gleichen Zeile vergleichen konnte. Wenn ich dieses Ergebnis richtig verstehe, würde ich den nächsten Teil durch Vergleichen zählen, aber ich möchte wirklich nicht Cursor verwenden. Gibt es einen anderen Weg? Vielen Dank. – jero