1

当我在 mysql 中运行联合查询时,一些值返回为 BLOB,有没有办法解决这个问题?我合并查询,因为我希望特定列的总和位于底部

select a.app_file_id,a.app_trn,a.app_fname,a.app_lname,l.computer_interest,l.loan_life,l.app_ln_amnt, l.commit_date,l.app_amnt_owed,r.amount_paid
from applicant a
left join loan l on   l.l_app_file_id=a.app_file_id
left join receipt r on r.r_app_file_id=l.l_app_file_id
WHERE l.app_loan_type=r.receipt_loan_type
AND l.app_loan_type='Computer Loan'
AND  MONTHNAME(commit_date) = 'April'
and YEAR(commit_date)=2012

Union
Select '', '','','','','',SUM(l.app_ln_amnt),'',SUM(l.app_amnt_owed),SUM(r.amount_paid)
from applicant a
left join loan l on   l.l_app_file_id=a.app_file_id
left join receipt r on r.r_app_file_id=l.l_app_file_id
WHERE l.app_loan_type=r.receipt_loan_type
AND l.app_loan_type='Computer Loan'
AND  MONTHNAME(commit_date) = 'April'
and YEAR(commit_date)=2012
4

2 回答 2

2

在 UNION 的第一个查询中,第二列是一个 INT,而在第二个查询中,它是一个空字符串,它不是一个有效的 INT。第 5 列、第 6 列和第 8 列也是如此。

于 2012-04-11T16:27:23.520 回答
0

避免联合中出现 blob 的一种简单方法是使用格式。考虑以下示例

例如:

select "string 1","string 2","string 3" from dual
union
select "string 1",format(sum(1+2),0),"string 3" from dual

但我不建议这样做。使所有联合中的结果列类型完全相同,并避免使用格式以避免结果中出现“BLOB”

select "string 1",0 "string 2","string 3" from dual
union
select "string 1",sum(1+2),"string 3" from dual
于 2015-04-10T11:53:39.227 回答