SELECT
ACCOUNTING_SUBJECT_SEAL_NAME,
SUM(AMT_CONTRACT)/10000 AMT_CONTRACT,
sum(AMT_COLLECTION)/10000 AMT_COLLECTION,
COUNT( DISTINCT CUST_ID) 客户数
FROM ( SELECT
t2.SIGNING_TIME,
T3.AMT_CONTRACT ,
T2.ACCOUNTING_SUBJECT_SEAL_NAME,
t4.AMT_COLLECTION ,
T2.CUST_ID FROM T2
LEFT JOIN T1 ON T2.ID=T1.ID
LEFT JOIN t3 ON T2.ID=T3.CONTRACT_ID
left join t4 on t4.CONTRACT_ID=t2.id
WHERE 1=1
${if(len(归属公司)==0,"","and T2.ACCOUNTING_SUBJECT_SEAL_NAME = '" + 归属公司 + "'" )}
${if(len(起始时间)==0,"","and t2.SIGNING_TIME>= '" +format(起始时间,"yyyy-MM-dd") + "'")}
${if(len(终止时间)==0,"","and t2.SIGNING_TIME<= '" +format(终止时间,"yyyy-MM-dd") + "'") }
) tmp
GROUP BY ACCOUNTING_SUBJECT_SEAL_NAME
--------------分隔线----------------
把你的参数放在每一个里面
就是在第一段都去按时间过滤。数据量大的时候。你这样是先查询出所有数据再过滤肯定就慢了。。。每一段里面都放过滤参数。。
不然就去修改这里。把这个限制去掉。
