Je travaille sur un système de présence, je souhaite obtenir la valeur maximale de la connexion de l'utilisateur à la date.
suivi est une simple requête de sélection de sélection p> résultat de la requête ci-dessus p> i fractionnée résultat checktime code> dans la date et l'heure p>
USERID DATEPART TIMEPART
244 2/12/2020 14:56:57
244 2/11/2020 15:04:01
244 2/10/2020 14:50:19
244 2/7/2020 15:39:44
244 2/6/2020 18:21:04
3 Réponses :
create table #temp (USERID int,CHECKTIME datetime) insert into #temp values (244 ,'2/12/20 14:56') insert into #temp values (244 ,'2/12/20 12:04') insert into #temp values (244 ,'2/12/20 12:04') insert into #temp values (244 ,'2/12/20 12:04') insert into #temp values (244 ,'2/12/20 12:04') insert into #temp values (244 ,'2/12/20 12:03') insert into #temp values (244 ,'2/12/20 12:03') insert into #temp values (244 ,'2/12/20 12:03') insert into #temp values (244 ,'2/12/20 12:03') insert into #temp values (244 ,'2/12/20 11:00') insert into #temp values (244 ,'2/11/20 15:04') insert into #temp values (244 ,'2/11/20 14:17') insert into #temp values (244 ,'2/11/20 11:00') insert into #temp values (244 ,'2/11/20 10:59') insert into #temp values (244 ,'2/11/20 10:59') insert into #temp values (244 ,'2/11/20 10:58') insert into #temp values (244 ,'2/11/20 10:57') insert into #temp values (244 ,'2/11/20 10:57') insert into #temp values (244 ,'2/11/20 10:57') insert into #temp values (244 ,'2/10/20 14:50') insert into #temp values (244 ,'2/10/20 13:58') insert into #temp values (244 ,'2/7/20 15:39' ) insert into #temp values (244 ,'2/7/20 9:18' ) select USERID,[DATEPART],max(timepart)[timepart] from ( SELECT USERID, cast(CHECKTIME as date) AS DATEPART, cast(CHECKTIME as time) AS TIMEPART FROM #temp WHERE USERID = 244 ) as t group by USERID,DATEPART drop table #temp
J'ai essayé ceci, mais cela donne l'erreur suivante colonne "checkinout.checktime" n'est pas valide dans la clause de la commande par la clause de l'ordre, car il n'est pas contenu dans une fonction agrégée ou le groupe par clause. code>
Et si j'utilise max dans l'ordre en donnant un seul enregistrement
Vous pouvez essayer ce qui suit sortie p>
select USERID, cast(checktime as date) DATEPART, MAX(cast(checktime as time)) as TIMEPART from checkinout group BY userid,cast(checktime as date) order by cast(checktime as date) desc
Bonjour et bienvenue à Stackoverflow, et merci d'avoir répondu. Bien que ce code puisse répondre à la question, pouvez-vous envisager d'ajouter des explications à ce que le problème était résolu et comment vous l'avez résolu? Cela aidera les futurs lecteurs à mieux comprendre votre réponse et en apprendre.
Quelle est votre production attendue?
max () code> avec
groupe par code> ne fonctionne pas? Et quelle est votre version SQL Server? Veuillez également ne pas publier les échantillons de données comme une image, mais le poster comme un texte.
@Arunpalanisamy j'ai mis à jour ma question avec ma sortie souhaitée. Et SQL Server est 2019