Código SQL:
Ver originalCREATE TABLE #partidas
(
id INT,
depto INT
)
CREATE TABLE #forecast
(
depto INT,
enero INT,
febrero INT
)
CREATE TABLE #gastado
(
depto INT,
gastado INT
)
ID | Folio | DESC. | Depto.
559 460 aaaa 65011
560 460 bbbb 65012
561 460 cccc 65012
INSERT INTO #partidas VALUES (559,65011)
INSERT INTO #partidas VALUES (560,65012)
INSERT INTO #partidas VALUES (561,65012)
INSERT INTO #forecast VALUES (65011,100,200)
INSERT INTO #forecast VALUES (65012,50,80)
INSERT INTO #forecast VALUES (65013,300,150)
INSERT INTO #gastado VALUES (65011,200)
INSERT INTO #gastado VALUES (65012,100)
INSERT INTO #gastado VALUES (65012,200)
SELECT *,ROW_NUMBER() OVER (partition BY depto,gastado ORDER BY depto,gastado) rn FROM (
SELECT SUM(enero) enero , SUM(febrero) febrero ,depto,'1' AS gastado FROM #forecast WHERE depto IN
(SELECT depto FROM #partidas GROUP BY depto) GROUP BY depto
UNION ALL
SELECT gastado, '' , depto,'2' AS gastado FROM #gastado
) AS t1 ORDER BY depto ASC
Este es un ejemplo que te puede servir, si te fijas los valores con 1 son los del query de la suma de los meses y los que tienen el 2 son los valores de la consulta gastado(que serian los espacios en blanco que necesitas)