Ver Mensaje Individual
  #13  
Antiguo 17-05-2010
Avatar de movorack
[movorack] movorack is offline
Miguel A. Valero
 
Registrado: feb 2007
Ubicación: Bogotá - Colombia
Posts: 1.346
Reputación: 20
movorack Va camino a la famamovorack Va camino a la fama
Cita:
Empezado por sizne Ver Mensaje
Hola!!!
Tienes razon...
...Aqui tengo la consulta, obtengo lo resultado, solo que por decir en un año a XAlumno se le dio solo 4 meses la beca, pues el registro se me repite las 4 veces....Siendo que 700 se da cada mes.
IdE---Nom---Febrero---Marzo--Abril--Mayo--Junio--....Diciembre--Total
-1----Juan----700------700---700---700----NULL-.......--NULL--....700
-1----Juan----700------700---700---700----NULL-.......--NULL--....1400
-1----Juan----700------700---700---700----NULL-.......--NULL--....2100
-1----Juan----700------700---700---700----NULL-.......--NULL--....2800

Lo que quiero obtener de resultado es en un solo registro:
IdE---Nom---Febrero---Marzo--Abril--Mayo--Junio--....Diciembre--Total
1----Juan----700------700---700---700----NULL-.......--NULL--....2800

Código SQL [-]SELECT i.IdE,i.NomE,YEAR(b.Fecha)as Anio,b.MontoTR, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=2) AS Febrero, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=3) AS Marzo, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=4) AS Abril, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=5) AS Mayo, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=6) AS Junio, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=7) AS Julio, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=8) AS Agosto, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=9) AS Septiembre, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=10) AS Octubre, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=11) AS Noviembre, (SELECT TotalRecibido FROM BDbeca b1 WHERE b1.IdE=b.IdE AND YEAR(b1.Fecha)=YEAR(b.Fecha)AND MONTH(b1.Fecha)=12) AS Diciembre FROM BDinscripcion i INNER JOIN BDbeca b ON i.IdE=b.IdE WHERE year (b.Fecha)='2010'and i.IdE=6 GROUP BY i.IdE,i.NomE,b.IdE,b.Fecha,b.MontoTR


Alguna sentencia o no sé que podria colocar para que me aparezca en un solo registro...

Gracias...


SALUDOS
El problema puede estar en que estas agrupando por MontoTR... si le entregaste 700, 1400 y así sucecivamente entonces te apareceran todos esos registros...

creo que tu agrupación deberia ser solo por: i.Id, i.Nom

entonces adicionar al final una suma del campo en el que totalizas... el sum totalizará por alumno los montos recibidos en el año.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com
Responder Con Cita