t1_202409表中有user_id,fee费用、t2_202408表中有user_id,fee费用、t3_202407表中有user_id,fee费用,他们分别表示当月、上月、上上月,现有一表temp有字段user_id,想获取temp表中近三个月的费用,该怎么写
时间: 2024-09-25 08:19:37 浏览: 24
在这种情况下,你可以通过JOIN操作合并这三个表(t1_202409, t2_202408, t3_202407)和temp表,然后对每个user_id的近三个月费用进行累加。假设temp表中的user_id与这三张表的user_id相匹配,你可以使用以下SQL语句:
```sql
SELECT
temp.user_id,
SUM(CASE
WHEN temp.month = '当月' THEN t1_202409.fee
WHEN temp.month = '上月' THEN COALESCE(t2_202408.fee, 0)
WHEN temp.month = '上上月' THEN COALESCE(t3_202407.fee, 0)
END) AS total_fee
FROM
temp
LEFT JOIN
t1_202409 ON temp.user_id = t1_202409.user_id
LEFT JOIN
t2_202408 ON temp.user_id = t2_202408.user_id
LEFT JOIN
t3_202407 ON temp.user_id = t3_202407.user_id
GROUP BY
temp.user_id
```
这个查询假设`temp`表有一个`month`字段,用于标识费用来自哪个月份。`COALESCE()`函数用于处理可能存在的NULL值,如果某个月份的费用不存在,则返回0。
阅读全文