No entiendo como te funciona:
la consulta que tú haces
Código:
select mes, campo1 as c1, 0 as c2
from tabla1
union
select mes, 0 as c1, campo2 as c2
from tabla2
debería de darte los siguientes resultados:
Código:
Mes c1 c2
01 100
02 200
01 1000
03 300
Para que te de los siguientes resultados:
Código:
Mes Campo1 Campo2
01 100 1000
02 200
03 300
la consulta debería debería de ser la siguiente:
Código:
SELECT Tabla1.Mes, Tabla1.Campo1, Tabla2.Campo2 FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.Mes=Tabla2.Mes