SQL: No me doy cuenta como usar el GROUP BY

gfxgfx
 
Bienvenido(a), Visitante. Favor de ingresar o registrarse.
¿Perdiste tu email de activación?

Ingresar con nombre de usuario, contraseña y duración de la sesión
 
gfx gfx
gfx
21208 Mensajes en 4872 Temas por 20741 Usuarios - Último usuario: semoacousymah Mayo 23, 2012, 13:34:03
*
gfx*InicioAyudarssBuscarCalendarioIngresarRegistrarsegfx
gfxgfx
0 Usuarios y 2 Visitantes están viendo este tema.       « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: SQL: No me doy cuenta como usar el GROUP BY  (Leído 2706 veces)
x-PsicoSyS-x
Principiantes
*
Desconectado Desconectado

Mensajes: 149


Ver Perfil
SQL: No me doy cuenta como usar el GROUP BY
« en: Abril 20, 2010, 11:00:17 »

Hola, tego un re problema... no me doy cuenta como hacer una consulta SQL! xD

la cosa es asi, se supone que administro una farmacia y tengo que diseñar la base de datos que esta en el siguiente link

http://www.gigasize.com/get.php?d=3psyts1pmzf


y la consigna del ejercicio dice asi:

4.4. Realizar un consulta que informe la mayor venta por tipo de medicamento
(jarabe, comprimido, pomada, etc.).

Pego todo el enunciado:

Citar
EJERCICIOS
4. La gestión de una farmacia requiere poder llevar control de los medicamentos
existentes, así como de los que se van vendiendo, para lo cual se pretende
diseñar un sistema acorde a las siguientes especificaciones:
En la farmacia se requiere una catalogación de todos los medicamentos
existentes, para lo cual se almacenará un código de medicamento, nombre del
medicamento, tipo de medicamento (jarabe, comprimido, pomada, etc.),
unidades en stock, unidades vendidas y precio. Existen medicamentos de venta
libre, y otros que sólo pueden dispensarse con receta médica.
La farmacia adquiere cada medicamento a un laboratorio, o bien los fabrica ella
misma. Se desea conocer el código del laboratorio, nombre, teléfono, dirección,
fax así como el nombre de la persona de contacto.
Los medicamentos se agrupan en familias, dependiendo del tipo de
enfermedades a las que dicho medicamento se aplica.
Consultas:
4.1. Realizar una consulta que informe nombre del medicamento, nombre del
laboratorio y unidades en stock.
4.2. Realizar un consulta que informe nombre, unidades disponibles y precio
unitario de los artículos de un determinado laboratorio.
4.3. Realizar un consulta que informe nombre del medicamento, unidades en
stock, nombre y teléfono del laboratorio de todos aquellos productos que pasen
su punto de pedido.
4.4. Realizar un consulta que informe la mayor venta por tipo de medicamento
(jarabe, comprimido, pomada, etc.).



Alguna sugerencia?
En línea

︻┳═一x-PsicoSyS-x一═┳︻Kevin Mitnick :| un idolo... :|
snf
Administrator
*****
Desconectado Desconectado

Mensajes: 692


Ver Perfil
Re: SQL: No me doy cuenta como usar el GROUP BY
« Respuesta #1 en: Abril 20, 2010, 23:20:53 »

SELECT * MAX(cantidad_vendida) FROM ventas GROUP BY tipo_medicamento
En línea

Posts "interesantes"
================
Que es una shellcode?
Bad chars y encoders/decoders en payloads

El tiempo es un gran profesor, pero lamentablemente mata a todos sus alumnos.
x-PsicoSyS-x
Principiantes
*
Desconectado Desconectado

Mensajes: 149


Ver Perfil
Re: SQL: No me doy cuenta como usar el GROUP BY
« Respuesta #2 en: Abril 20, 2010, 23:45:21 »

hola snf!! gracias por tu colaboracion!
copie y pegue el segmento que me pusiste ahi pero directamente no me "compila" (no se si aca tambien se dice asi... jajajA)

por otro lado si ejecuto la siguiente consulta:
Código
Code (sql):
SELECT familia.famnombre AS Familia, MAX(medicamento.medvendido) AS Ventas
FROM medicamento INNER JOIN familia ON familia.famcod=medicamento.famcod
GROUP BY familia.famnombre;
me tira bien los resultados... pero me falta el nombre del medicamento mas vendido, para eso pense lo siguiente:
Código
Code (sql):
SELECT familia.famnombre AS Nombre, MAX(medicamento.medvendido) AS Ventas, medicamento.mednombre AS Medicamento
FROM medicamento INNER JOIN familia ON familia.famcod=medicamento.famcod
GROUP BY familia.famnombre;

pero aca me tira un error de que falta medicamento.mednombre porque no esta incluido en el group by... y si lo pongo me agrupa por medicamento y por familia... osea que me tira la mayor de entre esas dos... osea todos los registros... :S

Tambien prove con el DISTINCT pero me tiro error de que entra en conflicto con el GROUP BY...


Alguna pista?
Puedo hacer que primero me busque algo y despues me busque otra cosa en vase a eso?
es decir, que me agrupe por el campo"famcod" de la tabla medicamento y que a esos resultados una vez que los tenga le saque el nombre del medicamento y el nombre de la familia (que esta en otra tabla aparte)?

Gracias por su tiempO!
En línea

︻┳═一x-PsicoSyS-x一═┳︻Kevin Mitnick :| un idolo... :|
Phantom Lord
Administrator
*****
Desconectado Desconectado

Mensajes: 3.019



Ver Perfil WWW
Re: SQL: No me doy cuenta como usar el GROUP BY
« Respuesta #3 en: Abril 24, 2010, 11:32:08 »

HOla

El error te lo tira porque tenes que agregar el campo tambien al order by , aca te dejo la solucion y un ordenamiento para que se visualice mejor , si queres optimizarla esta en vos pero asi funciona me llevo un rato largo proqeu hace muchoqeu no veo sql pero lo pude sacar.



Código
Code (sql):
SELECT
familia.famnombre AS Familia,
       MAX(medicamento.medvendido) AS Ventas,
medicamento.medNombre AS Nombre
FROM
medicamento
INNER JOIN
familia ON familia.famcod=medicamento.famcod
GROUP BY
familia.famnombre,  
       medicamento.medNombre,
medicamento.medvendido
ORDER BY
medicamento.medvendido DESC;
 

Como digo Richard stallman , la programacion es como un poema , trata de que sea legible, ordenalo antes de poner un codigo asi se lee mejor.

Ahora si sigo hablando con net que me caga a pedo que no le doy bola jaja.

Salu2 y suerte
« Última modificación: Abril 24, 2010, 11:34:39 por Phantom Lord » En línea

Click En la imagen Para ingresar A Mi Web - Sumate a la comunidad Fantasma
x-PsicoSyS-x
Principiantes
*
Desconectado Desconectado

Mensajes: 149


Ver Perfil
Re: SQL: No me doy cuenta como usar el GROUP BY
« Respuesta #4 en: Abril 27, 2010, 08:04:39 »

lo consulte con el profesor y me dijo que al tener el campo medicamento.mednombre me agrupaba todo el registro completo, es decir:
familia.famnombre + MAX(medicamento.medvendido) + medicamento.mednombre
y lo resolvimos sacando el campo de medicamento.mednombre, cuando veamos funciones en SQL Server subo la respuesta!! Smiley
por ahora el codigo quedo asi:

Código
Code (sql):
SELECT DISTINCT
           familia.famnombre AS Familia,
           MAX(medicamento.medvendido) AS Ventas
FROM
           medicamento
INNER JOIN
           familia
ON
           familia.famcod=medicamento.famcod
GROUP BY
           familia.famnombre;
 


Muchas gracias por la ayuda!!
fpusderkis
En línea

︻┳═一x-PsicoSyS-x一═┳︻Kevin Mitnick :| un idolo... :|
Phantom Lord
Administrator
*****
Desconectado Desconectado

Mensajes: 3.019



Ver Perfil WWW
Re: SQL: No me doy cuenta como usar el GROUP BY
« Respuesta #5 en: Abril 27, 2010, 08:38:07 »

eso es lo mismo que ya habias hecho abajo.

Con esa sentencia no estas mostrando el nobre del medicamento mas vendido, solo la familia y la cantidad de ventas.

No se que es lo que tenes que hacer , seria bueno empezar por ahi asi no nos rompemos el bocho al pedo.

Segun lo que dice en

4.4. Realizar un consulta que informe la mayor venta por tipo de medicamento
(jarabe, comprimido, pomada, etc.).

La solucion que encontre que muestre, la familia , la venta y el medicamento es este.

Código
Code (sql):
SELECT
familia.famnombre AS Familia,
       MAX(medicamento.medvendido) AS Ventas,
medicamento.medNombre AS Nombre
FROM
medicamento
INNER JOIN
familia ON familia.famcod=medicamento.famcod
GROUP BY
familia.famnombre,  
       medicamento.medNombre,
medicamento.medvendido
ORDER BY
medicamento.medvendido DESC;
 

Si lo queres hacer con distinct tenes que quitarle el order by


En línea

Click En la imagen Para ingresar A Mi Web - Sumate a la comunidad Fantasma
Glifux
Avanzado
**
Desconectado Desconectado

Mensajes: 174

Quiero aprender eso...


Ver Perfil WWW
Re: SQL: No me doy cuenta como usar el GROUP BY
« Respuesta #6 en: Junio 30, 2010, 23:52:10 »

Todo lo que va en el select, va en el group by.

Sino nunca va a andar :p

Salu2,
Martin
En línea

GIl
User Nuevo
*
Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: SQL: No me doy cuenta como usar el GROUP BY
« Respuesta #7 en: Febrero 19, 2012, 00:40:20 »

hola alguein realizo este ejercicio y me lo puede mostrar o enviarme el archivo en sql mi correo es jojos37@hotmail.com o me dicen donde lo descargo les estaria muy agradecido muchas gracias
En línea
gfx
Páginas: [1] Ir Arriba Imprimir 
gfx
Ir a:  
gfx
Powered by SMF 1.1.16 | SMF © 2006, Simple Machines
HDL Group hackers

gfx