我在postgresql 9.2.15中工作,我正在尝试在输出中创建一个SUBTOTAL ROW。我在我的UNION ALL中遇到了这个错误,我尝试通过转换到TEXT来修复它,在我已应用COUNT的列中,但我仍然得到相同的错误。
任何帮助/方向将不胜感激。谢谢。
这是我的错误:
ERROR: UNION types numeric and text cannot be matched
LINE 117: SELECT II.school_id || ' Subtotal', null, null, null, null, ...
^
********** Error **********
ERROR: UNION types numeric and text cannot be matched
SQL state: 42804
Character: 4725
这是我的查询代码:
SELECT II.school_id, II.syear, II.student_id, II.last_name,
II.first_name,
II.AddressSchool, II.EnrolledSchool, II.Income_SchoolYear,
II.NumberInHousehold,
II.HouseholdMember, II.PayType, II.Income, II.AddedOn, II.AddedBy,
II.CompletedEarlyChildhoodDocumentation, II.ApprovedByPrincipal,
II.ApprovedByEarlyChildhood,
QI.QualifyingInfo_SchoolYear, QI.MethodOfQualifying, QI.Notes,
QI.ApprovedBy, QI.ApprovedDate
FROM II
INNER JOIN QI
ON II.student_id = QI.student_id
WHERE II.ApprovedByPrincipal IS NULL
AND II.ApprovedByEarlyChildhood IS NULL
UNION ALL
SELECT II.school_id || ' Subtotal', null, null, null, null,
null, null, null, null,
null, null, null, null, null,
null, count(II.ApprovedByPrincipal)::text, null,
null, null, null, null, null
FROM II
INNER JOIN QI
ON II.student_id = QI.student_id
WHERE II.ApprovedByPrincipal IS NOT NULL
AND II.ApprovedByEarlyChildhood IS NULL
GROUP by 1
ORDER BY II.school_id, II.student_id, II.last_name asc, II.first_name
答案 0 :(得分:0)
我通过手动将null设置为int4来解决此问题。例如,
select
first name,
last name,
address,
quantity
from table1
union all
first name,
last name,
null::int4 as quantity
from table2