java中写长串sql语句的示例

String str1 = "SELECT tb1.AGENCYNAME, tb2.TODAYINSTALL, tb3.TODAYTRANS, trim(nvl(to_char(tb3.TODAYPRICE, 'L999,999,999,990.99'), '¥0.00')) as TODAYPRICE,trim(nvl(to_char(tb3.TODAYPAYMENT, 'L999,999,999,990.99'), '¥0.00')) as TODAYPAYMENT "

+ ", tb1.TOTALINSTALL, tb4.TOTALTRANS,trim(nvl(to_char(tb4.TOTALPRICE, 'L999,999,999,990.99'), '¥0.00')) as TOTALPRICE,trim(nvl(to_char(tb4.TOTALPAYMENT, 'L999,999,999,990.99'), '¥0.00')) as TOTALPAYMENT "

+ "FROM (SELECT t2.me_name AS AGENCYNAME, COUNT(t1.MERCHNO) AS TOTALINSTALL FROM scode_install t1 RIGHT JOIN (SELECT expand_mechanism.id, expand_mechanism.me_name FROM expand_mechanism UNION ALL "

+ "SELECT scode_expand_sub.id, scode_expand_sub.me_name FROM SCODE_EXPAND_SUB UNION ALL SELECT scode_expand.id, scode_expand.me_name FROM SCODE_EXPAND) t2 ON t2.ID = t1.tzjg ";

String str2= " GROUP BY t2.me_name) tb1 INNER JOIN (SELECT t2.me_name AS AGENCYNAME, COUNT(t1.MERCHNO) AS TODAYINSTALL FROM scode_install t1 RIGHT JOIN (SELECT expand_mechanism.id, expand_mechanism.me_name FROM expand_mechanism "

+ "UNION ALL SELECT scode_expand_sub.id, scode_expand_sub.me_name FROM SCODE_EXPAND_SUB UNION ALL SELECT scode_expand.id, scode_expand.me_name FROM SCODE_EXPAND) t2 ON t2.ID = t1.tzjg AND t1.installdate = '"

+ curDate

+ "' "

+ " GROUP BY t2.me_name) tb2 ON tb1.AGENCYNAME = tb2.AGENCYNAME INNER JOIN (SELECT t3.me_name AS AGENCYNAME, COUNT(t2.amt) AS TODAYTRANS, SUM(t2.amt) AS TODAYPRICE, SUM(t2.PAYAMT-(t2.amt*t1.fee/100)) AS TODAYPAYMENT FROM SCODE_INSTALL t1 "

+ "RIGHT JOIN (SELECT LMERCHNO, PAYAMT, amt FROM scp_scode_trans WHERE status = '00' AND settledate = '"

+ curDate

+ "') t2 ON t1.MERCHNO = t2.LMERCHNO RIGHT JOIN (SELECT expand_mechanism.id, expand_mechanism.me_name FROM expand_mechanism "

+ "UNION ALL SELECT scode_expand_sub.id, scode_expand_sub.me_name FROM SCODE_EXPAND_SUB UNION ALL SELECT scode_expand.id, scode_expand.me_name FROM SCODE_EXPAND) t3 ON t3.id = t1.tzjg GROUP BY t3.me_name) tb3 ON tb2.AGENCYNAME = tb3.AGENCYNAME "

+ "INNER JOIN (SELECT t3.me_name AS AGENCYNAME, COUNT(t2.amt) AS TOTALTRANS, SUM(t2.amt) AS TOTALPRICE, SUM(t2.PAYAMT-(t2.amt*t1.fee/100)) AS TOTALPAYMENT FROM SCODE_INSTALL t1 RIGHT JOIN (SELECT LMERCHNO, PAYAMT, amt FROM scp_scode_trans WHERE status = '00' ";

String str3=") t2 ON t1.MERCHNO = t2.LMERCHNO RIGHT JOIN (SELECT expand_mechanism.id, expand_mechanism.me_name FROM expand_mechanism UNION ALL SELECT scode_expand_sub.id, scode_expand_sub.me_name FROM SCODE_EXPAND_SUB UNION ALL SELECT scode_expand.id, scode_expand.me_name "

+ "FROM SCODE_EXPAND) t3 ON t3.id = t1.tzjg GROUP BY t3.me_name) tb4 ON tb3.AGENCYNAME = tb4.AGENCYNAME ";

if (null != lastStart && !"".equals(lastStart)) {

str1+="AND t1.installdate >= '"+lastStart+"' ";

str2+="AND settledate >= '"+lastStart+"' ";

}

if (null != lastEnd && !"".equals(lastEnd)) {

str1+="and t1.installdate <='"+lastEnd+"' ";

str2+="AND settledate <= '"+lastEnd+"' ";

}

if (agency != null && !"".equals(agency)) {

str3 += "where tb1.AGENCYNAME like '%" + agency

+ "%' ORDER BY TODAYINSTALL DESC";

} else {

str3 += "ORDER BY TODAYINSTALL DESC";

}

String str = str1+str2+str3;

在JAVA中书写上面这样的SQL语句时,要注意在每一行的语句末尾加上一个空格或在每一行的首位加上一个空格,这样可以防止拼接出来的字符串出现问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值