Desde Excel, duda SQL en MS QUERY

23/08/2004 - 22:28 por Jorge | Informe spam
Buenas tardes a todos,

En un código como este:

SELECT AgentActivityLog.UserId,
AgentActivityLog.StatusGroup, AgentActivityLog.StatusKey,
AgentActivityLog.StateDuration,
AgentActivityLog.StatusDateTime,
AgentActivityLog.EndDateTime
FROM i3_eic.dbo.AgentActivityLog AgentActivityLog
WHERE (AgentActivityLog.StatusDateTime>={ts '2004-08-22
00:00:00'}) AND (AgentActivityLog.EndDateTime<{ts '2004-
08-23 00:00:00'}) AND
(AgentActivityLog.StatusGroup='AVAILABLE') AND
(AgentActivityLog.StatusKey='Available')
ORDER BY AgentActivityLog.UserId,
AgentActivityLog.StatusDateTime

que en MS QUERY me arroja todos los usuarios (UserId
repetidos o no), que concidan con las especificaciones
que doy, cómo puedo hacer para que por ejemplo salga un
registro de cada usuario basado en la menor fecha del
campo StatusDateTime, es decir, quiero registros únicos
de UserId que tengan la menor fecha y hora del campo
StatusDateTime.

Muchas gracias por la colaboración.

feliz tarde.

Preguntas similare

Leer las respuestas

#1 Valentín Playá Serra
24/08/2004 - 09:41 | Informe spam
Jorge,

hay que usar una función de agrupación, Min en este caso, y Group By. No lo
he probado pero sería algo así:

SELECT AgentActivityLog.UserId,
AgentActivityLog.StatusGroup, AgentActivityLog.StatusKey,
AgentActivityLog.StateDuration,
Min(AgentActivityLog.StatusDateTime),
AgentActivityLog.EndDateTime
FROM i3_eic.dbo.AgentActivityLog AgentActivityLog
WHERE (AgentActivityLog.StatusDateTime>={ts '2004-08-22
00:00:00'}) AND (AgentActivityLog.EndDateTime<{ts '2004-
08-23 00:00:00'}) AND
(AgentActivityLog.StatusGroup='AVAILABLE') AND
(AgentActivityLog.StatusKey='Available')
ORDER BY AgentActivityLog.UserId,
AgentActivityLog.StatusDateTime
GROUP BY
AgentActivityLog.UserId,
AgentActivityLog.StatusGroup, AgentActivityLog.StatusKey,
AgentActivityLog.StateDuration,
AgentActivityLog.EndDateTime

Saludos,

Valentín Playá Serra
Sonotronic S.A.
****************************************************
"Jorge" escribió en el mensaje
news:b90d01c4894f$c1933bd0$
Buenas tardes a todos,

En un código como este:

SELECT AgentActivityLog.UserId,
AgentActivityLog.StatusGroup, AgentActivityLog.StatusKey,
AgentActivityLog.StateDuration,
AgentActivityLog.StatusDateTime,
AgentActivityLog.EndDateTime
FROM i3_eic.dbo.AgentActivityLog AgentActivityLog
WHERE (AgentActivityLog.StatusDateTime>={ts '2004-08-22
00:00:00'}) AND (AgentActivityLog.EndDateTime<{ts '2004-
08-23 00:00:00'}) AND
(AgentActivityLog.StatusGroup='AVAILABLE') AND
(AgentActivityLog.StatusKey='Available')
ORDER BY AgentActivityLog.UserId,
AgentActivityLog.StatusDateTime

que en MS QUERY me arroja todos los usuarios (UserId
repetidos o no), que concidan con las especificaciones
que doy, cómo puedo hacer para que por ejemplo salga un
registro de cada usuario basado en la menor fecha del
campo StatusDateTime, es decir, quiero registros únicos
de UserId que tengan la menor fecha y hora del campo
StatusDateTime.

Muchas gracias por la colaboración.

feliz tarde.
Respuesta Responder a este mensaje
#2 Jorge
24/08/2004 - 14:55 | Informe spam
Ok, gracias, voy a ensayar...

saludos,

Jorge

Jorge,

hay que usar una función de agrupación, Min en este


caso, y Group By. No lo
he probado pero sería algo así:

SELECT AgentActivityLog.UserId,
AgentActivityLog.StatusGroup, AgentActivityLog.StatusKey,
AgentActivityLog.StateDuration,
Min(AgentActivityLog.StatusDateTime),
AgentActivityLog.EndDateTime
FROM i3_eic.dbo.AgentActivityLog AgentActivityLog
WHERE (AgentActivityLog.StatusDateTime>={ts '2004-08-22
00:00:00'}) AND (AgentActivityLog.EndDateTime<{ts '2004-
08-23 00:00:00'}) AND
(AgentActivityLog.StatusGroup='AVAILABLE') AND
(AgentActivityLog.StatusKey='Available')
ORDER BY AgentActivityLog.UserId,
AgentActivityLog.StatusDateTime
GROUP BY
AgentActivityLog.UserId,
AgentActivityLog.StatusGroup, AgentActivityLog.StatusKey,
AgentActivityLog.StateDuration,
AgentActivityLog.EndDateTime

Saludos,

Valentín Playá Serra
Sonotronic S.A.
****************************************************
"Jorge" escribió


en el mensaje
news:b90d01c4894f$c1933bd0$
Buenas tardes a todos,

En un código como este:

SELECT AgentActivityLog.UserId,
AgentActivityLog.StatusGroup, AgentActivityLog.StatusKey,
AgentActivityLog.StateDuration,
AgentActivityLog.StatusDateTime,
AgentActivityLog.EndDateTime
FROM i3_eic.dbo.AgentActivityLog AgentActivityLog
WHERE (AgentActivityLog.StatusDateTime>={ts '2004-08-22
00:00:00'}) AND (AgentActivityLog.EndDateTime<{ts '2004-
08-23 00:00:00'}) AND
(AgentActivityLog.StatusGroup='AVAILABLE') AND
(AgentActivityLog.StatusKey='Available')
ORDER BY AgentActivityLog.UserId,
AgentActivityLog.StatusDateTime

que en MS QUERY me arroja todos los usuarios (UserId
repetidos o no), que concidan con las especificaciones
que doy, cómo puedo hacer para que por ejemplo salga un
registro de cada usuario basado en la menor fecha del
campo StatusDateTime, es decir, quiero registros únicos
de UserId que tengan la menor fecha y hora del campo
StatusDateTime.

Muchas gracias por la colaboración.

feliz tarde.


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida