1

mysqlでUnionクエリを実行すると、一部の値が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 の最初のクエリでは、2 番目の列は INT ですが、2 番目のクエリでは有効な INT ではない空の文字列です。5 列目、6 列目、8 列目も同様です。

于 2012-04-11T16:27:23.520 に答える
0

Blob in union を回避する簡単な方法の 1 つは、format を使用することです。次の例を検討してください

例えば:

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 に答える