I have this queries, but I need to make a Union for all. But each query has a different quantity of columns in the select-list, which gives me the error:
All queries combined using a UNION, INTERSECT or EXCEPT operator must have the same number of expressions in their target lists.
How can I fix this to avoid the error?
Select 'Pregunta:(8-9-10)Totales No Coinciden' as Descripcion_Error, c_Fk_IdBoleta as Boleta,
f_TotalAreaExtensionFinca as Extension_Total, f_TotalAreaDedicadaFinca
as Area_Dedicada_Finca, f_TotalAreaTenenciaFinca as Tenencia_Finca
from Fnc_TenenciaUsoTierra
where (f_TotalAreaExtensionFinca <> f_TotalAreaDedicadaFinca OR f_TotalAreaExtensionFinca <> f_TotalAreaTenenciaFinca)
AND Fnc_TenenciaUsoTierra.c_Fk_IdBoleta = @id_Boleta
UNION
SELECT 'Pregunta (12) El área sembrada es mayor al área dedicada a cultivos' as Descripcion_Error,
c_Fk_IdBoleta as Boleta,
(SELECT SUM(f_AreaDedicadaCultivos)
FROM Fnc_TenenciaUsoTierra
WHERE c_Fk_IdBoleta = sembrado.c_Fk_IdBoleta)
AS AreaDedicadaCultivos,
SUM(sembrado.f_AreaSiembra) as AreaSembrada
FROM
Clt_Sembrado as sembrado
WHERE
sembrado.c_Fk_IdBoleta = 45550711
GROUP BY sembrado.c_Fk_IdBoleta
HAVING SUM(sembrado.f_AreaSiembra) > (SELECT SUM(f_AreaDedicadaCultivos)
FROM Fnc_TenenciaUsoTierra
WHERE c_Fk_IdBoleta = sembrado.c_Fk_IdBoleta)
You have to have the same number of columns on each side of the UNION. You can always add dummy columns to get there – and fill them with NULLs or the “not applicable” value of your choice.