j'ai une tableTrouvez différence entre les dates de fin en comparant les lignes
----------
User
----------
userID(pk)
startdate // update : i am not using this field.
enddate
je dois comparer entre les end_dates entre les lignes comparant si elle est plus de 3 jours et compter le userid.
je suis en train de faire quelque chose de similaire à ce
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
mon idée est de boucle autour de la table et créer une date de nextend puis trouver le comparer à l'aide datediff. Je suis coincé avec la première partie de la création de la prochaine date et je crois que la deuxième partie de la comparaison serait facile. Je suis coincé entre les deux.
Ma question est que je fais la bonne chose, c'est assez compliqué. Je suis confus si pour obtenir le résultat à travers la requête sql ou utilisez C# au code derrière en utilisant Linq ou quelque chose de similaire.
Mise à jour: désolé si je n'étais pas clair dans l'explication de mon scénario: je suis en train de trouver le comte, pas de fois un client a visité. ex: id_utilisateur: 1 peut être visité quotidiennement ou une fois par mois. donc j'ai besoin d'obtenir le compte (fréquence de la visite de l'utilisateur). donc si les utilisateurs ont visité la date de fin a été
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)
thats comment je devrais compter, thats y j'ai essayé d'utiliser le curseur qui était trop pour moi compliquerait à résoudre. J'apprécie pour vos conseils.
Quelle version du serveur sql? – Donnie
Je ne vous vois pas compter n'importe où dans cette boucle de curseur. Pouvez-vous expliquer en termes clairs ce que vous essayez d'obtenir? Il pourrait très bien y avoir un moyen de le faire sans un curseur. – cdonner
Version SQL Server 2008. @cdonner Je suis coincé dans la première partie de la création d'un nextenddate afin que je puisse comparer avec le nextenddate et enddate dans la même rangée. Si je reçois ce résultat correctement, la prochaine partie je compterais en comparant mais je ne veux vraiment pas utiliser le curseur. Est-ce qu'il y a un autre moyen. Merci. – jero