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

problema consulta con like

Estas en el tema de problema consulta con like en el foro de Mysql en Foros del Web. Hola a todos, Tengo un problemilla con una consulta: Código: SELECT movimientos.idreg, movimientos.numcontrato, contratos.c_nombre, contratos.edificio, contratos.identificativo, SUM( movimientos.importe ) AS total, ROUND( SUM( (movimientos.importe * ...
  #1 (permalink)  
Antiguo 29/12/2006, 12:02
Avatar de ibme74  
Fecha de Ingreso: marzo-2004
Mensajes: 81
Antigüedad: 20 años, 1 mes
Puntos: 0
problema consulta con like

Hola a todos,

Tengo un problemilla con una consulta:

Código:
SELECT movimientos.idreg, movimientos.numcontrato, contratos.c_nombre, contratos.edificio, contratos.identificativo, SUM( movimientos.importe ) AS total, ROUND( SUM( (movimientos.importe * movimientos.retencion) /100 ) ,2 ) AS totalreten, ROUND( SUM( (
movimientos.importe * movimientos.igic
) /100 ) , 2 ) AS totaligic
FROM contratos, movimientos
WHERE SUM( movimientos.importe ) LIKE '%384.19%'
AND movimientos.numcontrato = contratos.codigo
AND movimientos.numrecibo = ''
GROUP BY movimientos.numcontrato
Mysql me responde : #1111 - Invalid use of group function

como podria hacer esta consulta.
  #2 (permalink)  
Antiguo 29/12/2006, 13:35
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: problema consulta con like

Bueno, si me equivoco, me corrigen.

Lo que he visto, es que el GROUP BY se utiliza cuando tenes una funcion de COUNT(), SUM() o similar en el SELECT. En tu caso, no podes utilizarlo porque no estas utilizandolo.

Fijate en estos ejemplos: SELECT
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #3 (permalink)  
Antiguo 29/12/2006, 14:24
Avatar de ibme74  
Fecha de Ingreso: marzo-2004
Mensajes: 81
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: problema consulta con like

Cita:
Iniciado por BrujoNic Ver Mensaje
Bueno, si me equivoco, me corrigen.

Lo que he visto, es que el GROUP BY se utiliza cuando tenes una funcion de COUNT(), SUM() o similar en el SELECT. En tu caso, no podes utilizarlo porque no estas utilizandolo.

Fijate en estos ejemplos: SELECT
Gracias por reponder BrujoNic.

Pero utilizo varios SUM en el SELECT (si miras la consulta completa con la barra de desplazamiento los veras), el problema esta en el LIKE, como hacer un SUM(movimientos.importe) LIKE '%algo%' ya que no me acepta el alias total (WHERE total LIKE '%algo%')
  #4 (permalink)  
Antiguo 30/12/2006, 10:51
Avatar de Lord of freaks  
Fecha de Ingreso: octubre-2004
Ubicación: Madrid
Mensajes: 334
Antigüedad: 19 años, 6 meses
Puntos: 2
Re: problema consulta con like

A ver el problema es que no puedes filtrar la consulta con un WHERE ya que la suma es del CONJUTO DE REGISTRO AGRUPADOS, debes filtrar con un HAVING, así que deberías hacer algo así

Código:
SELECT movimientos.idreg, movimientos.numcontrato, contratos.c_nombre, contratos.edificio, contratos.identificativo, SUM( movimientos.importe ) AS total, ROUND( SUM( (movimientos.importe * movimientos.retencion) /100 ) ,2 ) AS totalreten, ROUND( SUM( (
movimientos.importe * movimientos.igic
) /100 ) , 2 ) AS totaligic
FROM contratos, movimientos

movimientos.numcontrato = contratos.codigo
AND movimientos.numrecibo = ''
GROUP BY movimientos.numcontrato 
HAVING SUM( movimientos.importe ) LIKE '%384.19%'
Un saludo
__________________
Una vez un elemental de rayos mató una tribu entera de tritones.

¡¡ El sólo quería darse un baño !!

http://www.frikilandia.com

Neither Fu Nor Fa
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 22:50.