开发功能需要根据过滤的年度范围展示期末余额和其借贷方向:
例如 过滤 2019-2021 年
展示结果数据:2019 借 178.56 2020 借 456.78 2021 贷 23.45
源表数据为 为一年一条数据
Java代码:
" SELECT "
+ " GROUP_CONCAT(DISTINCT CONCAT('Max(IF(A.YEAR = ''',A.YEAR, ''',"
+ " A.je, 0)) AS ',"
+ " CONCAT(A.YEAR,'_qmye'), '',',Max(IF(A.YEAR = ''',"
+ " A.YEAR, ''', A.fx, '''')) AS ',"
+ " CONCAT(A.YEAR,'_fx'), '')) AS dynamic "
+ " FROM (SELECT * FROM table where year"
+ " BETWEEN 2019 AND 2020) a ";
将以上sql 查询出结果,然后在外层包上需要的字段,用group by 分组。
SELECT GROUP_CONCAT(DISTINCT CONCAT('Max(IF(A.YEAR = ''',A.YEAR, ''',
A.je, 0)) AS ',
CONCAT(A.YEAR,'_qmye'), '',',Max(IF(A.YEAR = ''',
A.YEAR, ''', A.fx, '''')) AS ',
CONCAT(A.YEAR,'_fx'), '')) AS DYNAMIC
FROM (SELECT * FROM TABLE WHERE YEAR
BETWEEN 2019 AND 2020) a