组合多选查询

  • 本文关键字:查询 组合 mysql
  • 更新时间 :
  • 英文 :


专家

我有下面两个(实际上不止两个)查询,我需要在一次执行中运行它们,并获得它们的结果以避免执行成本。

查询1

SELECT  0,                
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'PTP') as 'PTP',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'BPTP') as 'BPTP',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'PENDING') as 'Pending',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'NC') as 'NC',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'ANF') as 'ANF',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'SFD') as 'SFD',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'CB') as 'CB',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'LM') as 'LM',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'DL') as 'DL'

其输出为以下格式的

0,ptp,bptp,fptp,挂起,nc,anf,sfd,cb,lm,dl

查询2:

SELECT  31,                
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'PTP') as 'PTP',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'BPTP') as 'BPTP',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'PENDING') as 'Pending',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'NC') as 'NC',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'ANF') as 'ANF',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'SFD') as 'SFD',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'CB') as 'CB',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'LM') as 'LM',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'DL') as 'DL'

其输出为以下格式的

31,ptp,bptp,fptp,挂起,nc,anf,sfd,cb,lm,dl

我想做的是将这些查询组合起来,并返回类似以下的数据

其输出为以下格式的

bucket、ptp、bptp、fptp、挂起、nc、anf、sfd、cb、lm、dl

0,1,2,3,4,5,6,7,8,9,10,11

31,1,2,3,4,5,6,7,8,9,10,11

61,1,2,3,4,5,6,7,8,9,10,11

我试图将它们包装到另一个Select查询中,但它一直给我一个语法错误

有什么建议吗?

联合就是答案。。愚蠢的我

最新更新