Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/10/2009, 14:49
ivan2009
 
Fecha de Ingreso: enero-2009
Mensajes: 67
Antigüedad: 16 años, 3 meses
Puntos: 1
Consulta Visual Basic 6.0 con sum(if(..

hola amigos alguien me puede dar una idea para solucionar un problema vb 6.0 y mysql, tengo 2 tablas la una llamada contrato y otra meses.
Deseo mostrar los valores de la tabla contrato y de la tablas de meses de la siguiente manera, todo funciona hasta el mes de ABR sumando cuando agrego los dos ultimos meses no me visualiza todos los registros y ni suma el total:
En mysql funciona perfecto esto:

Cita:
SELECT contrato.codigomatricula AS Matricula, contrato.nombres, IF( contrato.mes = "00", contrato.valorunitario, 0 ) AS sep, SUM( IF( meses.mes = "11", meses.valor, 0 ) ) AS oct, SUM( IF( meses.mes = "22", meses.valor, 0 ) ) AS nov, SUM( IF( meses.mes = "33", meses.valor, 0 ) ) AS dic, SUM( IF( meses.mes = "44", meses.valor, 0 ) ) AS ene, SUM( IF( meses.mes = "55", meses.valor, 0 ) ) AS feb, SUM( IF( meses.mes = "66", meses.valor, 0 ) ) AS mar, SUM( IF( meses.mes = "77", meses.valor, 0 ) ) AS abr, SUM( IF( meses.mes = "88", meses.valor, 0 ) ) AS may, SUM( IF( meses.mes = "99", meses.valor, 0 ) ) AS jun
FROM contrato
LEFT JOIN meses ON contrato.codigomatricula = meses.codigomatricula
WHERE contrato.anolectivo = '2008 - 2009'
GROUP BY contrato.nombres
WITH ROLLUP

pero cuando paso a visual basic todo funciona hasta el mes de ABR sumando cuando agrego los dos ultimos meses no me visualiza todos los registros y ni suma el total:
En vb


Cita:
Set Form30.MSHFlexGrid1.DataSource = cn.Execute("SELECT contrato.codigomatricula as Matricula,contrato.nombres,if(contrato.mes='" & "00" & _
"',contrato.valorunitario,0) as sep,sum(if(meses.mes='" & "11" & "',meses.valor,0)) as oct,sum(if(meses.mes='" & _
"22" & "',meses.valor,0)) as nov,sum(if(meses.mes='" & "33" & "',meses.valor,0)) as dic,sum(if(meses.mes='" & _
"44" & "',meses.valor,0)) as ene,sum(if(meses.mes='" & "55" & "',meses.valor,0)) as feb,sum(if(meses.mes='" & _
"66" & "',meses.valor,0)),sum(if(meses.mes='" & "77" & "',meses.valor,0)),sum(if(meses.mes='" & _
"88" & "',meses.valor,0)),sum(if(meses.mes='" & "99" & "',meses.valor,0)) FROM contrato left join meses on contrato.codigomatricula=meses.codigomatricula where contrato.anolectivo='" & menu.an & "'group by contrato.nombres WITH ROLLUP")

ya le he probado de distintas maneras y no me visualiza todos los registros ni suma pero hasta abril no hay problema, sucede es con los 2 últimos meses.
(total son 2000 registros y solo visualiza 1800 registros es decir solo desde la letra A hasta la V los nombres y los últimos ya no los muestra)

Gracias de antemano