Premettendo che non posso provarli, quindi sparo molto a caso, mi sa che nelle due sottoview, dovresti dare un alias al campo "qs.id_immobile" e richiamarlo dalla view principale appunto con quel nuovo nome... traducendo:


codice:
View_Cons_Riscaldamento
as
select qs.id_immobile As Immobile, qs.importo as cons ,
datepart(mm,s.data_inizio_intervento)
 as mese_data_inizio_interventoC,
datepart(yyyy,s.data_inizio_intervento) as
anno_data_inizio_interventoC, 
datepart(mm,s.data_fine_intervento) 
as mese_data_fine_interventoC,
datepart(yyyy,s.data_fine_intervento)
 as anno_data_fine_interventoC 
from Quote_Spese as qs, Spese as s 
where s.tipologia_spesa = "CONSUNTIVO RISCALDAMENTO" 


 View_Prev_Riscaldamento
as
select qs.id_immobile As Immobile,qs.importo as prev ,
datepart(mm,s.data_inizio_intervento)
 as mese_data_inizio_interventoP,
datepart(yyyy,s.data_inizio_intervento) 
as anno_data_inizio_interventoP,
 datepart(mm,s.data_fine_intervento) 
as mese_data_fine_interventoP,
 datepart(yyyy,s.data_fine_intervento)
 as anno_data_fine_interventoP from Quote_Spese as qs, 
Spese as s where s.tipologia_spesa = "PREVENTIVO RISCALDAMENTO" 


select i.nome, i.cognome, i.ragione_sociale,
ui.id_stabile, ui.piano, ui.interno,
ui.superficie_radiante, VPR.prev, VCR.cons, 
VPR.mese_data_inizio_interventoP, 
VPR.anno_data_inizio_interventoP, 
VCR.mese_data_inizio_interventoC, 
VCR.anno_data_fine_interventoC
from Inquilini as i ,Unità_Immobiliari as ui, 
View_Prev_Riscaldamento as VPR, 
View_Cons_Riscaldamento as VCR 
where ui.id_inquilino = i.id_inquilino 
and VPR.Immobile= ui.id_immobile 
and VCR.Immobile= ui.id_immobile
Nota: Ho messo anche "yyyy" al posto di "mm" per gli alias "anno_data_inizio_interventoC" e "anno_data_inizio_interventoP"... così a naso mi sembravano errati.