Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Problema con consulta

Estas en el tema de Problema con consulta en el foro de Mysql en Foros del Web. Hola tengo la siguiente consulta: SELECT SUM(CantidadEntrega), Nombre_med,Entidad,Composicion,FechaEntrega FROM Med_PacienteMedicamentos INNER JOIN Med_Medicamentos ON Med_PacienteMedicamentos.Codigo_med=Med_Medicament os.Codigo_med INNER JOIN Med_Pacientes ON Med_Pacientes.Identificacion=Med_PacienteMedicamen tos.Identificacion WHERE FechaEntrega >= ...
  #1 (permalink)  
Antiguo 21/12/2009, 15:51
Avatar de Angelik0722  
Fecha de Ingreso: diciembre-2009
Ubicación: Colombia
Mensajes: 43
Antigüedad: 14 años, 4 meses
Puntos: 0
Problema con consulta

Hola

tengo la siguiente consulta:

SELECT SUM(CantidadEntrega), Nombre_med,Entidad,Composicion,FechaEntrega
FROM Med_PacienteMedicamentos INNER JOIN Med_Medicamentos
ON
Med_PacienteMedicamentos.Codigo_med=Med_Medicament os.Codigo_med
INNER JOIN Med_Pacientes
ON Med_Pacientes.Identificacion=Med_PacienteMedicamen tos.Identificacion
WHERE FechaEntrega >= '2009-10-1'
AND FechaEntrega <= '2009-10-30'
GROUP BY Nombre_med

ORDER BY FechaEntrega ASC



El problema es cuando agrupo medicamentos por el nombre resulta que en la base de datos hay por ejemplo un

Albendazol tabletas
Albendazol suspension

lo que hace la consulta es sumar la cantidad entregada al usuario ..pero la falla esta en que me agrupa en un solo nombre, ya lo intente agrupandolo de otras maneras ....

El q me pueda ayudar se lo agradezco mucho

Angelik
  #2 (permalink)  
Antiguo 21/12/2009, 15:57
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 9 meses
Puntos: 105
Respuesta: Problema con consulta

creo que es por el orden de los campos.......... cambia tu select por este y prueba haber.......

Código MySQL:
Ver original
  1. SELECT Nombre_med,Entidad,Composicion,SUM(CantidadEntrega),FechaEntrega
  2. FROM Med_PacienteMedicamentos INNER JOIN Med_Medicamentos
  3. Med_PacienteMedicamentos.Codigo_med=Med_Medicament os.Codigo_med
  4. INNER JOIN Med_Pacientes
  5. ON Med_Pacientes.Identificacion=Med_PacienteMedicamen tos.Identificacion
  6. WHERE FechaEntrega >= '2009-10-1'
  7. AND FechaEntrega <= '2009-10-30'
  8. GROUP BY Nombre_med
  9. ORDER BY FechaEntrega ASC

Suerte.
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #3 (permalink)  
Antiguo 21/12/2009, 16:08
Avatar de Angelik0722  
Fecha de Ingreso: diciembre-2009
Ubicación: Colombia
Mensajes: 43
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema con consulta

Hola

Ya lo probe tal cual me lo indicaste pero no me aparece lo mismo

Nombre Medicamento Entidad composicion cantidad fecha entrega
Albendazol selva salud 100mg/5ml 339 2009-10-01


pero no me aparece el otro medicamento que es igual pero que viene en suspension y que la cantidad entregada es diferente


Mil gracias igual
  #4 (permalink)  
Antiguo 21/12/2009, 16:12
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con consulta

El GROUP BY debe hacerse por las dos columnas. Debe ser lo suficientemente discriminante como para que el resultado sea correcto.
Código MySQL:
Ver original
  1.    Nombre_med,
  2.    Entidad,
  3.    Composicion,
  4.    SUM(CantidadEntrega) TotalEntregado,
  5.    FechaEntrega
  6. FROM Med_PacienteMedicamentos  MPM
  7.    INNER JOIN Med_Medicamentos MM USING(Codigo_med)
  8.    INNER JOIN Med_Pacientes MP USING(Identificacion)
  9.    FechaEntrega >= '2009-10-1'
  10.    AND FechaEntrega <= '2009-10-30'
  11. GROUP BY Nombre_med, Composicion;

Pon en el GROUP BY el nombre del campo correcto.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 21/12/2009, 16:27
Avatar de Angelik0722  
Fecha de Ingreso: diciembre-2009
Ubicación: Colombia
Mensajes: 43
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema con consulta

Hola GNZsoloyo

Me sirvio mucho tu ayuda.....aunque no me ejecuto el codigo que me diste ...probe mi consulte asi:

SELECT Nombre_med, Entidad, Composicion, SUM( CantidadEntrega ) , FechaEntrega
FROM Med_PacienteMedicamentos
INNER JOIN Med_Medicamentos ON Med_PacienteMedicamentos.Codigo_med = Med_Medicamentos.Codigo_med
INNER JOIN Med_Pacientes ON Med_Pacientes.Identificacion = Med_PacienteMedicamentos.Identificacion
WHERE FechaEntrega >= '2009-10-1'
AND FechaEntrega <= '2009-10-30'
GROUP BY Nombre_med, Composicion
ORDER BY FechaEntrega ASC


ubique la composicion y ahi si me saco los datos que queria
pero me quede con la duda de porque tu consulta no me funciono
  #6 (permalink)  
Antiguo 21/12/2009, 17:21
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Problema con consulta

En primera instancia, puede que sea un problema de versiones de MySQL.
¿Cuál estás usando?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 22/12/2009, 06:59
Avatar de Angelik0722  
Fecha de Ingreso: diciembre-2009
Ubicación: Colombia
Mensajes: 43
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema con consulta

hola Mysql 5.0.45

Última edición por Angelik0722; 22/12/2009 a las 07:04
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:00.