SELECT sss.*,co.id conid,(sss.invoicedAmount1-ifnull(b.entryAmount,0)) invoiceBalance from (
select id id,contract_number contractNumber,customer_name customerName,invoice_date invoiceDate1,entry_amount1 invoicedAmount1,
case when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=0 THEN
(select substring_index(substring_index(invoice_tax_number,',',1),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=1 THEN
(select substring_index(substring_index(invoice_tax_number,',',1),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=2 THEN
(select substring_index(substring_index(invoice_tax_number,',',1),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=3 THEN
(select substring_index(substring_index(invoice_tax_number,',',1),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=4 THEN
(select substring_index(substring_index(invoice_tax_number,',',1),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=5 THEN
(select substring_index(substring_index(invoice_tax_number,',',1),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=6 THEN
(select substring_index(substring_index(invoice_tax_number,',',1),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=7 THEN
(select substring_index(substring_index(invoice_tax_number,',',1),',',-1))
END as invoiceTaxNumber
from invoice_info WHERE invoice_status = '3'
union all
select id id,contract_number contractNumber,customer_name customerName,invoice_date2 invoiceDate1,entry_amount2 invoicedAmount1,
case when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=0 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=1 THEN
(select substring_index(substring_index(invoice_tax_number,',',2),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=2 THEN
(select substring_index(substring_index(invoice_tax_number,',',2),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=3 THEN
(select substring_index(substring_index(invoice_tax_number,',',2),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=4 THEN
(select substring_index(substring_index(invoice_tax_number,',',2),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=5 THEN
(select substring_index(substring_index(invoice_tax_number,',',2),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=6 THEN
(select substring_index(substring_index(invoice_tax_number,',',2),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=7 THEN
(select substring_index(substring_index(invoice_tax_number,',',2),',',-1))
END as invoiceTaxNumber
from invoice_info WHERE invoice_status = '3' and (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))>0
union all
select id id,contract_number contractNumber,customer_name customerName,invoice_date3 invoiceDate1,entry_amount3 invoicedAmount1,
case when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=0 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=1 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=2 THEN
(select substring_index(substring_index(invoice_tax_number,',',3),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=3 THEN
(select substring_index(substring_index(invoice_tax_number,',',3),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=4 THEN
(select substring_index(substring_index(invoice_tax_number,',',3),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=4 THEN
(select substring_index(substring_index(invoice_tax_number,',',3),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=5 THEN
(select substring_index(substring_index(invoice_tax_number,',',3),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=6 THEN
(select substring_index(substring_index(invoice_tax_number,',',3),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=7 THEN
(select substring_index(substring_index(invoice_tax_number,',',3),',',-1))
END as invoiceTaxNumber
from invoice_info WHERE invoice_status = '3' and (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))>1
union all
select id id,contract_number contractNumber,customer_name customerName,invoice_date4 invoiceDate1,entry_amount4 invoicedAmount1,
case when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=0 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=1 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=2 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=3 THEN
(select substring_index(substring_index(invoice_tax_number,',',4),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=4 THEN
(select substring_index(substring_index(invoice_tax_number,',',4),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=5 THEN
(select substring_index(substring_index(invoice_tax_number,',',4),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=6 THEN
(select substring_index(substring_index(invoice_tax_number,',',4),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=7 THEN
(select substring_index(substring_index(invoice_tax_number,',',4),',',-1))
END as invoiceTaxNumber
from invoice_info WHERE invoice_status = '3' and (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))>2
union all
select id id,contract_number contractNumber,customer_name customerName,invoice_date5 invoiceDate1,entry_amount5 invoicedAmount1,
case when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=0 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=1 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=2 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=3 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=4 THEN
(select substring_index(substring_index(invoice_tax_number,',',5),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=5 THEN
(select substring_index(substring_index(invoice_tax_number,',',5),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=6 THEN
(select substring_index(substring_index(invoice_tax_number,',',5),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=7 THEN
(select substring_index(substring_index(invoice_tax_number,',',5),',',-1))
END as invoiceTaxNumber
from invoice_info WHERE invoice_status = '3' and (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))>3
union all
select id id,contract_number contractNumber,customer_name customerName,invoice_date6 invoiceDate1,entry_amount6 invoicedAmount1,
case when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=0 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=1 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=2 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=3 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=4 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=5 THEN
(select substring_index(substring_index(invoice_tax_number,',',6),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=6 THEN
(select substring_index(substring_index(invoice_tax_number,',',6),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=7 THEN
(select substring_index(substring_index(invoice_tax_number,',',6),',',-1))
END as invoiceTaxNumber
from invoice_info WHERE invoice_status = '3' and (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))>4
union all
select id id,contract_number contractNumber,customer_name customerName,invoice_date7 invoiceDate1,entry_amount7 invoicedAmount1,
case when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=0 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=1 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=2 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=3 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=4 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=5 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=6 THEN
(select substring_index(substring_index(invoice_tax_number,',',7),',',-1))
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=7 THEN
(select substring_index(substring_index(invoice_tax_number,',',7),',',-1))
END as invoiceTaxNumber
from invoice_info WHERE invoice_status = '3' and (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))>5
union all
select id id,contract_number contractNumber,customer_name customerName,invoice_date8 invoiceDate1,entry_amount8 invoicedAmount1,
case when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=0 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=1 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=2 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=3 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=4 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=5 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=6 THEN
null
when (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))=7 THEN
(select substring_index(substring_index(invoice_tax_number,',',8),',',-1))
END as invoiceTaxNumber
from invoice_info WHERE invoice_status = '3' and (LENGTH(invoice_tax_number) - LENGTH( REPLACE (invoice_tax_number, ',', '')))>6
) sss
LEFT JOIN contract_info co ON sss.contractNumber = co.contract_number
left join
(
SELECT invoice_tax_number,sum(return_amount) entryAmount from money_back_info WHERE invoice_tax_number is not null and return_type=2 GROUP BY invoice_tax_number
) b on sss.invoiceTaxNumber=b.invoice_tax_number
WHERE (sss.invoicedAmount1-ifnull(b.entryAmount,0))>0
<if test="commonParamsVm.returnCompany!= null and commonParamsVm.returnCompany != '' ">
and sss.customerName!= #{commonParamsVm.returnCompany}
</if>
<if test="commonParamsVm.dimParamValue!= null and commonParamsVm.dimParamValue != '' ">
AND (sss.customerName like CONCAT(CONCAT('%', #{commonParamsVm.dimParamValue}), '%')
or sss.contractNumber like CONCAT(CONCAT('%', #{commonParamsVm.dimParamValue}), '%')
or sss.invoiceTaxNumber like CONCAT(CONCAT('%', #{commonParamsVm.dimParamValue}), '%')
)
</if>
ORDER BY
sss.id DESC
sql 一个字段是字符串逗号分隔,其他的事单独字符,拼接
最新推荐文章于 2024-05-02 01:04:40 发布