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

Subconsulta en una columna

Estas en el tema de Subconsulta en una columna en el foro de Mysql en Foros del Web. Hola a todos estoy intentando hacer una subconsulta dentro de una columna de una consulta pero no puedo Lo estoy haciend asi: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código ...
  #1 (permalink)  
Antiguo 22/06/2013, 13:25
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Subconsulta en una columna

Hola a todos estoy intentando hacer una subconsulta dentro de una columna de una consulta pero no puedo
Lo estoy haciend asi:

Código MySQL:
Ver original
  1. select x.cod_mod, x.nom_mod,
  2. aprobados = select count(a.usu_est) from sigca_miembros_grupo b inner join
  3.           sigca_nota_final_grupo a on a.usu_est=b.usu_est
  4.           where a.det_not='A' and b.cod_mod='2020',
  5. no_aprobados=select count(a.usu_est) from sigca_miembros_grupo b inner join
  6.           sigca_nota_final_grupo a on a.usu_est=b.usu_est
  7.           where a.det_not='R' and b.cod_mod='2020'
  8. FROM sigca_modulos x

Esto es posible hacerlo con mysql ??.... Las consulta que estan dentro de la palabra aprobados y no_aprobados devuelven un solo resultado....

Agradezco me indiquen como puedo hacer este tipo de consultas, gracias
  #2 (permalink)  
Antiguo 22/06/2013, 14:34
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, 4 meses
Puntos: 2658
Respuesta: Subconsulta en una columna

Es posible, pero la estás escribiendo mal, muy mal.
Código MySQL:
Ver original
  1. SELECT x.cod_mod, x.nom_mod,
  2. (SELECT count(a.usu_est)
  3.     FROM sigca_miembros_grupo b INNER JOIN
  4.     sigca_nota_final_grupo a on a.usu_est=b.usu_est
  5. WHERE a.det_not='A' AND b.cod_mod='2020') aprobados,
  6. (SELECT count(a.usu_est) FROM sigca_miembros_grupo b INNER JOIN
  7.     sigca_nota_final_grupo a on a.usu_est=b.usu_est
  8. WHERE a.det_not='R' AND b.cod_mod='2020') no_aprobados
  9. FROM sigca_modulos x;
Además, esto bien se puede obtener de formas más simples:
Código MySQL:
Ver original
  1.     x.cod_mod, x.nom_mod,
  2.     SUM(IF(a.det_not='A', 1, 0)) no_aprobados,
  3.     SUM(IF(a.det_not='R', 1, 0)) aprobados
  4.     sigca_miembros_grupo b
  5.     INNER JOIN sigca_nota_final_grupo a on a.usu_est = b.usu_est
  6.     INNER JOIN sigca_modulos x ON x.cod_mod = b.cod_mod
  7. WHERE x.cod_mod = '2020'

En este último caso estas obteniendo realmente los aprobados y reprobados de un mismo módulo, mientras que en el tuyo te traerá todos los módulos, junto con el total de aprobados y reprobados ede un mismo módulo.
__________________
¿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 26/06/2013, 18:47
 
Fecha de Ingreso: abril-2009
Ubicación: Colombia
Mensajes: 949
Antigüedad: 15 años
Puntos: 27
Respuesta: Subconsulta en una columna

Muchas gracias

Etiquetas: columna, join, select, sql, subconsulta
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 18:45.