我有这个疑问,但我需要为所有人制作一个联盟。但是,每个查询有列在选择列表中不同数量,这给我的错误:在选择列表中联合不同数量的列?
All queries combined using a UNION, INTERSECT or EXCEPT operator must have the same number of expressions in their target lists.
我怎样才能解决这个问题,以避免错误?
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)
如果需要,可以在短列表中为长列表中出现的额外列添加一个值,例如零或空值。 –
是的,这是问题,但如果你有其他选择不同的联盟的建议,请告诉我。谢谢 – ale
@ale - 如果你能描述所期望的结果应该是什么样子?按照乔纳森的建议,你可以添加一个常量表达式来表示底部的缺失列? –