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

[SOLUCIONADO] consulta usando subquery

Estas en el tema de consulta usando subquery en el foro de Mysql en Foros del Web. hola muy buenas Estoy intentando hacer una consulta con un subquery pero no me hace caso al where usado en el sub query. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); ...
  #1 (permalink)  
Antiguo 10/03/2013, 14:44
 
Fecha de Ingreso: abril-2012
Ubicación: Quito
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
consulta usando subquery

hola muy buenas

Estoy intentando hacer una consulta con un subquery pero no me hace caso al where usado en el sub query.

Código MySQL:
Ver original
  1. SELECT *, SUM(importe) AS TOTAL2
  2. FROM cobros_ab
  3. WHERE fechacobro='2013-03-10' AND atiende='admin' IN
  4. (SELECT codalbaran FROM albalinea WHERE(codigo BETWEEN 1 AND 2) HAVING COUNT(*)>=1)
que es lo que estoy haciendo mal, como hago para que solo me sume los que cumplan la condición del where en el subquery

Última edición por gnzsoloyo; 10/03/2013 a las 14:48 Razón: SQL sin etiquetar
  #2 (permalink)  
Antiguo 10/03/2013, 14:51
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: consulta usando subquery

El problema es simple: No estás indicando contra qué campo de la tabla cobros_ab se comparará el resultado de la subconsulta.
Yo apostaría que esa consulta te está devolviendo un error de sintaxis, ¿no es así?
Además, no puedes usar una consulta con una función agrupada como SUM(), sin poner el GROUP BY, cuando estás llamando a otros campos adicionales.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 10/03/2013, 14:59
 
Fecha de Ingreso: abril-2012
Ubicación: Quito
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: consulta usando subquery

no me da error de sintaxis, lo que si no me hace caso al where me suma todo lo que tenga en la db por ej: con el codigo 2 en factulinea tengo 174 y con el codigo 5 tengo 10 el resultado del TOTAL2 és 184
y lo queria es que solo me devolviera la suma de los que tengan 1 o 2 como codigo, me puedes echar una manita, gracias.
  #4 (permalink)  
Antiguo 10/03/2013, 15:40
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: consulta usando subquery

Primero: Es cierto, no te dio error de sintaxis, pero porque simplemente estaba evaluando erróneamente los parámetros. Lo que sucede allí es un error de lógica que hace que el resultado sea no discriminante.
No te dio el error de agrupamiento porque no llega a ese punto, pero eso si sería algo extraño.
Código SQL:
Ver original
  1. SELECT *, SUM(importe) TOTAL2
  2. FROM cobros_ab
  3. WHERE
  4.     fechacobro='2013-03-10'  
  5.     AND atiende='admin'  
  6.     AND atiende IN (SELECT codalbaran  
  7.     FROM albalinea  
  8.     WHERE codigo IN(1, 2)
  9.     HAVING COUNT(*)>=1)
Esto sería más cercano a lo que tienes que hacer, aunque no puedo probarla si datos, y no tengo tampoco las tablas.
__________________
¿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 10/03/2013, 16:04
 
Fecha de Ingreso: abril-2012
Ubicación: Quito
Mensajes: 11
Antigüedad: 12 años
Puntos: 0
Respuesta: consulta usando subquery

gracias amigo, me sigue arrojando la misma suma me suma el codigo 5...

Última edición por buybetter; 10/03/2013 a las 16:35
  #6 (permalink)  
Antiguo 10/03/2013, 16:49
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: consulta usando subquery

Sólo limpie la basura, eso no significa que la consulta funcionara bien. Como te dije, si no tengo los datos y la tabla, es difícil hace pruebas, y por ahor asólo estoy hablando de la sintaxis. No de los resultados.
Lo que si puedo asegurarte es que si te está sumando mal es porque los parámetros no son correctos, o están incompletos.
En otras palabras: ¿Qué campo relaciona la tabla "cobros_ab" con la tabla "albalinea "?
¿Es el campo "atiende"? ¿O hay algún otro parámetro que vincule ambas cosas?


¿Podrías poner el CREATE TABLE de ambas, y una muestra de datos de cada una?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: select, subquery, usando
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:37.