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

UNION con filtrado

Estas en el tema de UNION con filtrado en el foro de Mysql en Foros del Web. Hola, me gustaria si alguien puede echarme una manito con esto: tengo la sgte consulta que me devuelve la union de 2 tablas (cuentas y ...
  #1 (permalink)  
Antiguo 08/09/2010, 09:45
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
UNION con filtrado

Hola, me gustaria si alguien puede echarme una manito con esto:

tengo la sgte consulta que me devuelve la union de 2 tablas (cuentas y subcuentas) en el orden correcto:

Código:
(SELECT cuenta,descripcion,minimo,maximo FROM cuentas) UNION 
(SELECT subcuenta cuenta ,descripcion,'-' minimo,'-' maximo FROM subcuentas)  
ORDER BY cuenta
la tabla subcuentas se relaciona con la tabla cuentas de la siguiente forma:

cuentas.id_interno = subcuentas.id_cuenta

cuando filtro por el numero de cuenta no tengo problemas haciendolo asi:

Código:
(SELECT cuenta,descripcion,minimo,maximo FROM cuentas WHERE cuenta = 6000)
UNION (SELECT subcuenta cuenta ,descripcion,'-' minimo,'-' maximo FROM 
subcuentas WHERE id_cuenta=(SELECT id_interno FROM cuentas WHERE
cuenta=6000 ))
ORDER BY cuenta
el problema está cuando quiero filtrar de la sgte manera:

Código:
(SELECT cuenta,descripcion,minimo,maximo FROM bdsistema.cuentas WHERE 
descripcion LIKE '%na%' ) UNION (SELECT subcuenta cuenta ,descripcion,'-' 
minimo,'-' maximo FROM bdsistema.subcuentas WHERE 
id_cuenta=(SELECT id_interno FROM cuentas WHERE descripcion LIKE '%na%' ) ) 
ORDER BY cuenta
porque la subconsulta (SELECT id_interno FROM cuentas WHERE descripcion LIKE '%na%' ) me devuelve más de una fila por lo que me produce un error.

como puedo hacer esta consulta de manera correcta¿

cualquier luz será agradecida
__________________
C[^L*]D
[email protected]
tokkaido.blogspot.com
No hay mejor forma de aprender que enseñar
  #2 (permalink)  
Antiguo 08/09/2010, 09:58
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: UNION con filtrado

prueba así

Código SQL:
Ver original
  1. (SELECT cuenta,descripcion,minimo,maximo FROM bdsistema.cuentas WHERE
  2. descripcion LIKE '%na%' ) UNION (SELECT subcuenta cuenta ,descripcion,'-'
  3. minimo,'-' maximo FROM bdsistema.subcuentas WHERE
  4. id_cuenta IN (SELECT id_interno FROM cuentas WHERE descripcion LIKE '%na%' ) )
  5. ORDER BY cuenta

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #3 (permalink)  
Antiguo 08/09/2010, 10:19
 
Fecha de Ingreso: julio-2009
Mensajes: 90
Antigüedad: 14 años, 8 meses
Puntos: 4
Respuesta: UNION con filtrado

Perfesto!!! mil gracias

tu galleta de la fortuna de hoy dice "hoy será un dia excelente para ti"
__________________
C[^L*]D
[email protected]
tokkaido.blogspot.com
No hay mejor forma de aprender que enseñar

Etiquetas: union, filtros
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 12:28.