hql.append(" GROUP BY ").append(" xx.a1, ").append(" xx.b1, ").append(" xx.c1, ").append(" xx.d1 ; ");// 外层分组
StringBuilderhql=newStringBuilder("select ");
hql.append("xx.a1 as a, ");// 区域公司ID
hql.append("xx.b1 as b, ");// 购砂单位ID
hql.append("xx.d1 as d, ");// 项目ID
hql.append("xx.e1 as e, ");// 去年剩余预付款
hql.append("xx.f1 as f, ");// 本年销售货款
hql.append("sum( xx.g1 ) as g, ");// 预付款总额
hql.append("sum( xx.h1 ) as h, ");// 预付款退款额
hql.append("xx.i1 as i , ");// 预付款余额
hql.append("sum( xx.j1 ) as j , ");// 保证金总额
hql.append("sum(xx.q1) as q ");// 保证金退款额
hql.append("from (").append(
" SELECT REGIONALCOMPANY.id AS a1 , PURCHASESANDUNIT.id AS b1, CONTRACT.id AS c1, PROJECT.id AS d1, sum( SALESRECODE.amount ) AS e1, sum( SALESRECODE.amount ) AS f1, ");
hql.append(" CASE WHEN ARTIFICIAL.fund_type = 'DEPOSIT' THEN '' ELSE sum( ARTIFICIAL.recharge_amount ) END AS g1, "
);hql.append(" CASE WHEN REFUND.fund_type = '1' THEN '' ELSE sum( REFUND.actual_refund_amount ) END AS h1, "
);hql.append(" CONTRACT.advance_balance AS i1, ");hql.
append(" CASE WHEN ARTIFICIAL.fund_type = 'DEPOSIT' THEN sum( ARTIFICIAL.recharge_amount ) ELSE '' END AS j1, "
);hql.append(" CASE WHEN REFUND.fund_type = '1' THEN sum( REFUND.actual_refund_amount ) ELSE '' END AS q1 "
);hql.append(" from xyst_dinas_biz_organization as REGIONALCOMPANY ");//區域公司
hql.append("LEFT JOIN xyst_dinas_project_purchase_sand_company as PURCHASESANDUNIT ON PURCHASESANDUNIT.regional_company = REGIONALCOMPANY.id "
);// 购砂单位
hql.append("LEFT JOIN xyst_dinas_contract_master as CONTRACT ON CONTRACT.purchase_sand_Unit_id = PURCHASESANDUNIT.id AND CONTRACT.contract_state = 'EXECUTING' "
);// 合同
hql.append("LEFT JOIN xyst_dinas_project_filed as PROJECT on CONTRACT.project_id = PROJECT.id "
);// 项目
hql.append("LEFT JOIN xyst_dinas_sales_record AS SALESRECODE ON SALESRECODE.project_id = PROJECT.id "
append(" REFUND.fund_type ").append(" ) AS xx ");// 分组
hql.append(" GROUP BY ").append(" xx.a1, ").append(" xx.b1, ").
append(" xx.c1, ").append(" xx.d1 ");// 外层分组
//String sql = "SELECT xx.a1 as a, xx.b1 as b, xx.d1 as d, xx.e1 as e, xx.f1 as f, sum( xx.g1 ) as g, sum( xx.h1 ) as h, xx.i1 as i, sum( xx.j1 ) as j, sum(xx.q1 ) as q FROM ( SELECT REGIONALCOMPANY.id AS a1, PURCHASESANDUNIT.id AS b1, CONTRACT.id AS c1, PROJECT.id AS d1, sum( SALESRECODE.amount ) AS e1, sum( SALESRECODE.amount ) AS f1, CASE WHEN ARTIFICIAL.fund_type = 'DEPOSIT' THEN '' ELSE sum( ARTIFICIAL.recharge_amount ) END AS g1, CASE WHEN REFUND.fund_type = '1' THEN '' ELSE sum( REFUND.actual_refund_amount ) END AS h1, CONTRACT.advance_balance AS i1, CASE WHEN ARTIFICIAL.fund_type = 'DEPOSIT' THEN sum( ARTIFICIAL.recharge_amount ) ELSE '' END AS j1, CASE WHEN REFUND.fund_type = '1' THEN sum( REFUND.actual_refund_amount ) ELSE '' END AS q1 FROM xyst_dinas_biz_organization AS REGIONALCOMPANY LEFT JOIN xyst_dinas_project_purchase_sand_company AS PURCHASESANDUNIT ON PURCHASESANDUNIT.regional_company = REGIONALCOMPANY.id LEFT JOIN xyst_dinas_contract_master AS CONTRACT ON CONTRACT.purchase_sand_Unit_id = PURCHASESANDUNIT.id AND CONTRACT.contract_state = 'EXECUTING' LEFT JOIN xyst_dinas_project_filed AS PROJECT ON CONTRACT.project_id = PROJECT.id LEFT JOIN xyst_dinas_sales_record AS SALESRECODE ON SALESRECODE.project_id = PROJECT.id AND SALESRECODE.regional_company_id = REGIONALCOMPANY.id AND SALESRECODE.contract_id = CONTRACT.id AND ( SALESRECODE.sync_time < '2021-05-08' AND SALESRECODE.sync_time >= '2021-05-06' ) LEFT JOIN xyst_dinas_finance_artificial_recharge AS ARTIFICIAL ON ARTIFICIAL.regional_company = REGIONALCOMPANY.id AND ARTIFICIAL.contract = CONTRACT.id AND ARTIFICIAL.purchase_sand_unit = PURCHASESANDUNIT.id AND ( ARTIFICIAL.create_time < '2021-05-08' AND ARTIFICIAL.create_time >= '2021-05-06' ) LEFT JOIN xyst_dinas_finance_refund AS REFUND ON REFUND.regional_company = REGIONALCOMPANY.id AND REFUND.contract = CONTRACT.id AND REFUND.purchase_sand_company = PURCHASESANDUNIT.id AND ( REFUND.create_time < '2021-05-08' AND REFUND.create_time >= '2021-05-06' ) WHERE PURCHASESANDUNIT.regional_company IS NOT NULL GROUP BY CONTRACT.id,ARTIFICIAL.project,ARTIFICIAL.contract,ARTIFICIAL.purchase_sand_unit,REFUND.project,REFUND.contract,REFUND.purchase_sand_company,ARTIFICIAL.fund_type,REFUND.fund_type ) AS xx GROUP BY xx.a1,xx.b1,xx.c1,xx.d1,xx.d1";