| | |
| | | <select id="energyConsumptionTypeProportion" |
| | | resultType="com.ruoyi.energy.dto.EnergyConsumptionTypeDto"> |
| | | select e.energy_tyep, |
| | | SUM(ecd.dosage) energyConsumption, |
| | | SUM(ecd.dosage * e.unit_price) energyCost |
| | | SUM(COALESCE(ecd.dosage, 0)) energyConsumption, |
| | | SUM(COALESCE(ecd.dosage, 0) * e.unit_price) energyCost |
| | | from energy_consumption_detail ecd |
| | | left join energy e on ecd.energy_id = e.id |
| | | where ecd.meter_reading_date between #{c.startDate} and #{c.endDate} |
| | |
| | | group by e.energy_tyep |
| | | </select> |
| | | <select id="energyCostDtos" resultType="com.ruoyi.energy.dto.EnergyCostDto"> |
| | | select A.meter_reading_date, |
| | | A.waterConsumption, |
| | | A.waterCost, |
| | | B.electricityConsumption, |
| | | B.electricityCost, |
| | | C.gasConsumption, |
| | | C.gasCost, |
| | | sum(A.waterConsumption+B.electricityConsumption+C.gasConsumption) totalConsumption, |
| | | sum(A.waterCost+B.electricityCost+C.gasCost) totalCost |
| | | from |
| | | select z.meter_reading_date, |
| | | COALESCE(A.waterConsumption, 0) waterConsumption, |
| | | COALESCE(A.waterCost, 0) waterCost, |
| | | COALESCE(B.electricityConsumption, 0) electricityConsumption, |
| | | COALESCE(B.electricityCost, 0) electricityCost, |
| | | COALESCE(C.gasConsumption, 0) gasConsumption, |
| | | COALESCE(C.gasCost, 0) gasCost, |
| | | COALESCE(A.waterConsumption, 0)+ COALESCE(B.electricityConsumption, 0)+ COALESCE(C.gasConsumption, 0) totalConsumption, |
| | | COALESCE(A.waterCost, 0)+ COALESCE(B.electricityCost, 0)+ COALESCE(C.gasCost, 0) totalCost |
| | | from energy_consumption_detail z |
| | | left join |
| | | (select ecd.meter_reading_date, |
| | | sum(ecd.dosage) waterConsumption, |
| | | sum(ecd.dosage * e1.unit_price) waterCost |
| | |
| | | and ecd.type =#{c.type} |
| | | </if> |
| | | group by ecd.meter_reading_date)A |
| | | join |
| | | on z.meter_reading_date=A.meter_reading_date |
| | | left join |
| | | (select ecd.meter_reading_date, |
| | | sum(ecd.dosage) electricityConsumption, |
| | | sum(ecd.dosage * e2.unit_price) electricityCost |
| | |
| | | and ecd.type =#{c.type} |
| | | </if> |
| | | group by ecd.meter_reading_date)B |
| | | on A.meter_reading_date=B.meter_reading_date |
| | | join |
| | | on z.meter_reading_date=B.meter_reading_date |
| | | left join |
| | | (select ecd.meter_reading_date, |
| | | sum(ecd.dosage) gasConsumption, |
| | | sum(ecd.dosage * e3.unit_price) gasCost |
| | |
| | | and ecd.type =#{c.type} |
| | | </if> |
| | | group by ecd.meter_reading_date)C |
| | | on A.meter_reading_date=C.meter_reading_date |
| | | |
| | | on z.meter_reading_date=C.meter_reading_date |
| | | order by z.meter_reading_date |
| | | </select> |
| | | |
| | | </mapper> |