PROBLEMAS SELECT , SUM1() Y SUM2()

genosol
08 de Septiembre del 2009

Buenos días.

Tengo dos tablas. Una de horas asignadas a proyectos y otra con facturas de proyectos.
tabla horas: idpersonal, abreviado, idproyecto, horas
tabla facturas:idproyecto, totalfactura
quería mostrar en un data grid idpersonal, idproyecto, horas_totales (por proyecto), total_factura (por proyecto)

Set rspro = New ADODB.Recordset
rspro.CursorLocation = adUseClient

he intentado hacerlo de varias formas pero siempre me da disitntos errores:

sql = "SELECT HORAS.Idproyecto, sum(horas.horas) as HORAS_TOTALES, ISNULL(FACTURAS.SUM_TOTALES,0) AS TOTAL_FACTURAS FROM HORAS AS HORAS LEFT OUTER JOIN (SELECT sum(TOTALES) as SUM_TOTALES from FACTURAS GROUP BY idproyecto) as FACTURAS ON HORAS.IDPROYECTO=FACTURAS.IDPROYECTO GROUP BY HORAS.IDPROYECTO ORDER BY HORAS.IDPROYECTO"

También lo he intentado vinculándolas a una tabla más. aquí si me muestra registros, pero los muestra mal. Los totales de las facturas están cuadriplicados y, a veces, las horas están duplicadas:

sql = "SELECT horas.idpersonal as ID, horas.abreviado as PERSONAL, horas.idproyecto as Nº_PROYECTO, sum(horas.horas) as HORAS_TOTALES, sum(facturas.totales) as TOTAL_FACTURAS from horas INNER JOIN (PROYECTO INNER JOIN FACTURAS ON proyecto.idproyecto=facturas.idproyecto) ON horas.idproyecto=proyecto.idproyecto group by horas.idpersonal, horas.abreviado, horas.idproyecto order by horas.idproyecto"

'siempre termino con el error no se han especificado los parámteros requeridos
sql = "SELECT h.idpersonal as ID, h.abreviado as PERSONAL, h.idproyecto as Nº_PROYECTO, h.total as HORAS_TOTALES, f.totales as TOTAL_FACTURAS from (select idpersonal, abreviado, idproyecto, sum(horas) as TOTAL FROM HORAS GROUP BY idpersonal, abreviado, idproyecto) AS H INNER JOIN (PROYECTO INNER JOIN (SELECT SUM(TOTALES) AS TOTALES FROM FACTURAS GROUP BY IDPROYECTO) AS F ON proyecto.idproyecto=f.idproyecto) ON h.idproyecto=proyecto.idproyecto "



rspro.Open sql, con, adOpenStatic, adLockReadOnly, adCmdText// linea de error

Set DGproyectos.DataSource = rspro


le hge dado un montón de vueltas y no encuentro la solucion. Me pueden ayudar?

un saludo