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:
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.


Respuesta Responder a este mensaje
#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:
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:
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.






Respuesta Responder a este mensaje
#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:

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.



Respuesta Responder a este mensaje
#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:

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:
> 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.
>
>



Respuesta Responder a este mensaje
#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:
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:
> 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.
>
>


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