obtener solo una tupla

10/10/2007 - 18:50 por jorge | Informe spam
tengo la siguiente consulta

SELECT tbl_Oficial_Control.[Oficial_Ctrl_ Nom],
Count(tbl_Residencia_Constructor.Id_Residencia) AS CuentaDeId_Residencia
FROM (tbl_Oficial_Control INNER JOIN tbl_Zona ON
tbl_Oficial_Control.Id_Oficial_Ctrl = tbl_Zona.Id_Oficial_Ctrl) INNER JOIN
(tbl_Residencia INNER JOIN tbl_Residencia_Constructor ON
tbl_Residencia.Id_Residencia = tbl_Residencia_Constructor.Id_Residencia) ON
tbl_Zona.Id_Zona = tbl_Residencia.Id_Zona
GROUP BY tbl_Oficial_Control.[Oficial_Ctrl_ Nom];

pero solo quiero obtener el mayor del resultado que da: osea el 39 de
Cornelius
Oficial_Ctrl_ Nom CuentaDeId_Residencia
Cornelius 39
Harding 20
Mayes 3
Petch 33
Reeve 12


Gracias por cualquier ayuda.

Preguntas similare

Leer las respuestas

#1 Eclat
10/10/2007 - 18:57 | Informe spam
SELECT TOP(1)...

Salu2,

jorge escribió:
tengo la siguiente consulta

SELECT tbl_Oficial_Control.[Oficial_Ctrl_ Nom],
Count(tbl_Residencia_Constructor.Id_Residencia) AS CuentaDeId_Residencia
FROM (tbl_Oficial_Control INNER JOIN tbl_Zona ON
tbl_Oficial_Control.Id_Oficial_Ctrl = tbl_Zona.Id_Oficial_Ctrl) INNER JOIN
(tbl_Residencia INNER JOIN tbl_Residencia_Constructor ON
tbl_Residencia.Id_Residencia = tbl_Residencia_Constructor.Id_Residencia) ON
tbl_Zona.Id_Zona = tbl_Residencia.Id_Zona
GROUP BY tbl_Oficial_Control.[Oficial_Ctrl_ Nom];

pero solo quiero obtener el mayor del resultado que da: osea el 39 de
Cornelius
Oficial_Ctrl_ Nom CuentaDeId_Residencia
Cornelius 39
Harding 20
Mayes 3
Petch 33
Reeve 12


Gracias por cualquier ayuda.


Respuesta Responder a este mensaje
#2 Alejandro Mesa
10/10/2007 - 20:33 | Informe spam
Hola Jorge,

select top 1 with ties
tbl_Oficial_Control.[Oficial_Ctrl_ Nom],
Count(tbl_Residencia_Constructor.Id_Residencia) AS CuentaDeId_Residencia
FROM
(tbl_Oficial_Control INNER JOIN tbl_Zona ON
tbl_Oficial_Control.Id_Oficial_Ctrl = tbl_Zona.Id_Oficial_Ctrl) INNER JOIN
(tbl_Residencia INNER JOIN tbl_Residencia_Constructor ON
tbl_Residencia.Id_Residencia = tbl_Residencia_Constructor.Id_Residencia)
ON
tbl_Zona.Id_Zona = tbl_Residencia.Id_Zona
GROUP BY
tbl_Oficial_Control.[Oficial_Ctrl_ Nom]
order by
Count(tbl_Residencia_Constructor.Id_Residencia) DESC


AMB


"jorge" wrote:

tengo la siguiente consulta

SELECT tbl_Oficial_Control.[Oficial_Ctrl_ Nom],
Count(tbl_Residencia_Constructor.Id_Residencia) AS CuentaDeId_Residencia
FROM (tbl_Oficial_Control INNER JOIN tbl_Zona ON
tbl_Oficial_Control.Id_Oficial_Ctrl = tbl_Zona.Id_Oficial_Ctrl) INNER JOIN
(tbl_Residencia INNER JOIN tbl_Residencia_Constructor ON
tbl_Residencia.Id_Residencia = tbl_Residencia_Constructor.Id_Residencia) ON
tbl_Zona.Id_Zona = tbl_Residencia.Id_Zona
GROUP BY tbl_Oficial_Control.[Oficial_Ctrl_ Nom];

pero solo quiero obtener el mayor del resultado que da: osea el 39 de
Cornelius
Oficial_Ctrl_ Nom CuentaDeId_Residencia
Cornelius 39
Harding 20
Mayes 3
Petch 33
Reeve 12


Gracias por cualquier ayuda.



Respuesta Responder a este mensaje
#3 Salvador Ramos
10/10/2007 - 20:38 | Informe spam
Habría que añadir, además del top(1)
un order by 2 desc
para poder obtener el mayor

Un saludo
Salvador Ramos

www.helpdna.net (información sobre SQL Server y Microsoft .Net)
www.helpdna.net/acerca_de_salvador_ramos.htm


"Eclat" escribió en el
mensaje news:
SELECT TOP(1)...

Salu2,

jorge escribió:
tengo la siguiente consulta

SELECT tbl_Oficial_Control.[Oficial_Ctrl_ Nom],
Count(tbl_Residencia_Constructor.Id_Residencia) AS CuentaDeId_Residencia
FROM (tbl_Oficial_Control INNER JOIN tbl_Zona ON
tbl_Oficial_Control.Id_Oficial_Ctrl = tbl_Zona.Id_Oficial_Ctrl) INNER
JOIN (tbl_Residencia INNER JOIN tbl_Residencia_Constructor ON
tbl_Residencia.Id_Residencia = tbl_Residencia_Constructor.Id_Residencia)
ON tbl_Zona.Id_Zona = tbl_Residencia.Id_Zona
GROUP BY tbl_Oficial_Control.[Oficial_Ctrl_ Nom];

pero solo quiero obtener el mayor del resultado que da: osea el 39 de
Cornelius
Oficial_Ctrl_ Nom CuentaDeId_Residencia
Cornelius 39
Harding 20
Mayes 3
Petch 33
Reeve 12


Gracias por cualquier ayuda.
Respuesta Responder a este mensaje
#4 Alejandro Mesa
10/10/2007 - 21:25 | Informe spam
Si solo quieres seleccionar una unica fila, entonces debemos usar una segunda
columna para romper cualquier empate.

select top (1)
...
order by
CuentaDeId_Residencia DESC,
tbl_Oficial_Control.[Oficial_Ctrl_ Nom] ASC


AMB


"Alejandro Mesa" wrote:

Hola Jorge,

select top 1 with ties
tbl_Oficial_Control.[Oficial_Ctrl_ Nom],
Count(tbl_Residencia_Constructor.Id_Residencia) AS CuentaDeId_Residencia
FROM
(tbl_Oficial_Control INNER JOIN tbl_Zona ON
tbl_Oficial_Control.Id_Oficial_Ctrl = tbl_Zona.Id_Oficial_Ctrl) INNER JOIN
(tbl_Residencia INNER JOIN tbl_Residencia_Constructor ON
tbl_Residencia.Id_Residencia = tbl_Residencia_Constructor.Id_Residencia)
ON
tbl_Zona.Id_Zona = tbl_Residencia.Id_Zona
GROUP BY
tbl_Oficial_Control.[Oficial_Ctrl_ Nom]
order by
Count(tbl_Residencia_Constructor.Id_Residencia) DESC


AMB


"jorge" wrote:

> tengo la siguiente consulta
>
> SELECT tbl_Oficial_Control.[Oficial_Ctrl_ Nom],
> Count(tbl_Residencia_Constructor.Id_Residencia) AS CuentaDeId_Residencia
> FROM (tbl_Oficial_Control INNER JOIN tbl_Zona ON
> tbl_Oficial_Control.Id_Oficial_Ctrl = tbl_Zona.Id_Oficial_Ctrl) INNER JOIN
> (tbl_Residencia INNER JOIN tbl_Residencia_Constructor ON
> tbl_Residencia.Id_Residencia = tbl_Residencia_Constructor.Id_Residencia) ON
> tbl_Zona.Id_Zona = tbl_Residencia.Id_Zona
> GROUP BY tbl_Oficial_Control.[Oficial_Ctrl_ Nom];
>
> pero solo quiero obtener el mayor del resultado que da: osea el 39 de
> Cornelius
> Oficial_Ctrl_ Nom CuentaDeId_Residencia
> Cornelius 39
> Harding 20
> Mayes 3
> Petch 33
> Reeve 12
>
>
> Gracias por cualquier ayuda.
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida