根据选择查询时间区间,查询各个设备例如从 2021-07-01 至 2021-10-01 的租赁总应收,并以年-月分组
如以下sql:
SELECt date_format(o.rentStartDate,'%Y-%m') as 'key',sum(o.money) as 'value' FROM rentOrder o WHERe o.rentStartDate BETWEEN '2021-07-01' AND '2021-10-01' GROUP BY date_format(o.rentStartDate,'%Y-%m');
查询结果如下:
需将返回的数据中以租赁开始时间为key,以总金额为value封装为一个Map
实现:
Mapper中接口:
List> getRentAmountMonthDetail(String startTime, String endTime);
Mapper.xml中:
SELECT date_format(o.rentStartDate,'%Y-%m') as 'key',sum(o.money) as 'value' FROM rentOrder o WHERe o.rentStartDate BETWEEN #{startTime} AND #{endTime} GROUP BY date_format(o.rentStartDate,'%Y-%m')
ServiceImpl中:
public MapgetRentAmountDetail(String startTime, String endTime) { Map map = new HashMap (); List > list = mapper.getRentAmountMonthDetail(startTime, endTime); if(Assert.notEmpty(list)) { for(HashMap map1 : list) { String key = ""; String value = ""; for(Map.Entry entry : map1.entrySet()) { if("key".equals(entry.getKey())) { key = String.valueOf(entry.getValue()); }else if("value".equals(entry.getKey())) { value = String.valueOf(entry.getValue()); } map.put(key, value); } } } return map; }



