Duda sobre consulta SQL.

05/08/2006 - 07:01 por Anibal | Informe spam
Hola,
Tengo un ejercicio que eh estado tratando de hacer pero no puedo dar con la
solución.

Tehgo la siguiente tabla "T1":

proveedor | idproducto
a | 1
a | 2
b | 3
b | 4
b | 5
c | 6

Donde "idproducto" es clave principal.

Lo que quiero es obtener el proveedor que provee más productos con una
instrucción SQL pero sin usar joins.

¿Como podría lograr esto?
Desde ya Muchas Gracias.

Preguntas similare

Leer las respuestas

#1 Ele
05/08/2006 - 17:25 | Informe spam
aque te refieres con sin usar joins si solo es una tabla
prueba asi
Select top 1 proveedor, count(idproducto)
From T1
Group By proveedor
Order By 2 desc

"Anibal" escribió en el mensaje
news:
Mostrar la cita
#2 Anibal
05/08/2006 - 18:01 | Informe spam
Muchas gracias,
Si lo de no usar joins se me filtró porque justo estaba pensando en otro
ejercicio.
La consulta es válida, gracias de nuevo.


"Ele" escribió en el mensaje
news:
Mostrar la cita
#3 Alejandro Mesa
05/08/2006 - 18:04 | Informe spam
Anibal,

Tambien puedes usar:

create view dbo.v1
as
select
proveedor, count(idproducto) as cnt_idproducto
from
dbo.t1
group by
proveedor
go

select *
from dbo.t1 as a
where proveedor in (
select b.proveedor
from
dbo.v1
where
cnt_idproducto = (select max(cnt_idproducto) from dbo.v1)
)
go


AMB

"Anibal" wrote:

Mostrar la cita
#4 Alejandro Mesa
05/08/2006 - 18:07 | Informe spam
Ele,

En caso de haber empate, podemos usar:

select *
from dbo.t1
where proveedor in (
select top 1 with ties proveedor
from dbo.t1
group by proveedor
order by count(*) desc
)
go


AMB

"Ele" wrote:

Mostrar la cita
#5 BitOne®
06/08/2006 - 08:31 | Informe spam
select max(antidad),
proveedor
from ( select count(*) cantidad, proveedor
from t1
group by proveedor ) a


"Ele" wrote in message
news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida