Hola.
se me ha plantedo la siguiente consulta y no se como solucionarla.
SELECT Proveedor.Proveedor, Proveedor.Nombre, Contratos.Contrato,
MIN(Contratos.FInicio) AS Inicio,
MAX(Contratos.FInicio) AS Fin, SUM(Contratos.Importe)
AS Importe, YEAR(Contratos.FInicio) AS Año
FROM Contratos INNER JOIN
Proveedor ON Contratos.Proveedor = Proveedor.Proveedor
GROUP BY Proveedor.Proveedor, Proveedor.Nombre, Contratos.Contrato,
YEAR(Contratos.FInicio)
ORDER BY Proveedor.Proveedor
Esta devuelve los datos correctos, la suma de los importes agrupados por
año, contrato.
y ahora quisiera añadirle los importe ya pagados si los hay tambien
agrupados por años, contrato
la tabla contratos tiene un campo Factura que indica si se ha pagado el
importe correspondiente, por lo que la consulta quedaria como:
SELECT SUM(Importe) AS Pendiente
FROM Contratos
WHERE (Factura = '' OR Factura IS NULL)
GROUP BY Contrato, YEAR(FInicio)
he intentado sin exito.
SELECT Proveedor.Proveedor, Proveedor.Nombre, Contratos.Contrato,
MIN(Contratos.FInicio) AS Inicio,
MAX(Contratos.FInicio) AS Fin, SUM(Contratos.Importe)
AS Importe, YEAR(Contratos.FInicio) AS Año,
(SELECT SUM(Importe) AS Exp1
FROM Contratos
WHERE (Factura = '' OR Factura IS NULL)
GROUP BY Contrato, YEAR(FInicio)) AS Pendiente
FROM Contratos INNER JOIN Proveedor ON Contratos.Proveedor =
Proveedor.Proveedor
GROUP BY Proveedor.Proveedor, Proveedor.Nombre, Contratos.Contrato,
YEAR(Contratos.FInicio)
ORDER BY Proveedor.Proveedor
alguna solucion para que una sola consulta devuelva los datos correctos.
Leer las respuestas