|
|
@@ -190,6 +190,34 @@
|
|
|
END AS billAmount
|
|
|
FROM elderly_expense_item eei
|
|
|
INNER JOIN elderly_expense ee ON eei.expense_id = ee.id
|
|
|
+ INNER JOIN (
|
|
|
+ SELECT
|
|
|
+ eei2.item_id,
|
|
|
+ MAX(eei2.create_time) AS max_create_time
|
|
|
+ FROM elderly_expense_item eei2
|
|
|
+ INNER JOIN elderly_expense ee2 ON eei2.expense_id = ee2.id
|
|
|
+ WHERE eei2.is_monthly_expense = 1
|
|
|
+ AND ee2.elder_id = #{elderId}
|
|
|
+ AND (
|
|
|
+ (DATE_FORMAT(eei2.change_start_date, '%Y-%m') <![CDATA[ <= ]]> #{billingMonth}
|
|
|
+ AND DATE_FORMAT(eei2.change_end_date, '%Y-%m') <![CDATA[ >= ]]> #{billingMonth})
|
|
|
+ OR (DATE_FORMAT(eei2.change_start_date, '%Y-%m') <![CDATA[ <= ]]> #{billingMonth}
|
|
|
+ AND eei2.change_end_date IS NULL)
|
|
|
+ )
|
|
|
+ AND NOT (
|
|
|
+ DATE_FORMAT(eei2.change_start_date, '%Y-%m') = #{billingMonth}
|
|
|
+ AND eei2.change_start_date > STR_TO_DATE(CONCAT(#{billingMonth}, '-01'), '%Y-%m-%d')
|
|
|
+ AND EXISTS (
|
|
|
+ SELECT 1
|
|
|
+ FROM elderly_change_record ecr
|
|
|
+ WHERE ecr.elderly_id = ee2.elder_id
|
|
|
+ AND ecr.expect_overhead_charge_id = eei2.item_id
|
|
|
+ AND DATE_FORMAT(ecr.change_date, '%Y-%m') = #{billingMonth}
|
|
|
+ AND ecr.deleted = 0
|
|
|
+ )
|
|
|
+ )
|
|
|
+ GROUP BY eei2.item_id
|
|
|
+ ) latest ON eei.item_id = latest.item_id AND eei.create_time = latest.max_create_time
|
|
|
WHERE eei.is_monthly_expense = 1
|
|
|
AND ee.elder_id = #{elderId}
|
|
|
AND (
|