mysql修改数据后没保存
多加几个数据,多试几次就行了

select
hr.id,
hr.hr_id,
hr.customer_id,
c.name as customer_name,
c.service_team_id as team_id,
st.name as team_name,
hr.item_id,
si.name as item_name,
hr.push_cycle,
hr.record_time,
hr.hr_type,
hr.push_status,
hr.push_time,
hr.commodity_ids,
hr.service_item_ids,
hr.remark,
hr.tenant_id,
hr.create_time,
hr.update_time
from
health_record hr
left join
customer c
on
hr.customer_id = c.id
left join
service_team st
on
c.service_team_id = st.id
left join
service_item si
on
hr.item_id = si.id
where
1 = 1
<if test="serviceType != null and serviceType != ''">
and
hr.hr_type = #{serviceType}
if>
<if test="serviceTeam != null and serviceTeam != ''">
and
c.service_team_id = #{serviceTeam}
if>
<if test="pushStatus != null and pushStatus != ''">
and
hr.pushStatus = #{pushStatus}
if>
<if test="consumerName != null and consumerName != ''">
and
c.name like concat('%', #{consumerName}, '%')
if>
<if test="buildStart != null and buildStart != ''">
and
hr.create_time >= #{buildStart}
if>
<if test="buildEnd != null and buildEnd != ''">
and
#{buildEnd} >= hr.create_time
if>
<if test="pushStart != null and pushStart != ''">
and
hr.push_time >= #{pushStart}
if>
<if test="pushEnd != null and pushEnd != ''">
and
#{pushEnd} >= hr.push_time
if>
order by
push_status asc,
create_time desc

Calendar cal = Calendar.getInstance();//当前时间
int month = cal.get(Calendar.MONTH) + 1;//当前月份
int year = cal.get(Calendar.YEAR);//当前年
int quarter=0;//当前季度
int stm = 1;//季度的起始月份
int etm = 3;//季度的结束月份
switch (month){
case 1:
stm = 10;
etm=12;
quarter=3;
year=year-1;
break;//因为一月份进入方法是统计上一年第四季度的信息,所以处理年份信息
case 10:
stm = 7;
etm=9;
quarter=2;
break;//本年
case 7:
stm = 4;
etm=6;
quarter=1;
break;//本年
case 4:
stm = 1;
etm=3;
quarter=0;
break;//本年
}
/** 最终得到
year---年份
quarter--季度
stm --起始月份
etm终止月份
*/
SELECT
customer_id,metric,COUNT(*)
FROM
customer_body_metrics
GROUP BY
metric,customer_id
#今天
SELECT * FROM tb_log WHERE TO_DAYS(create_date) = TO_DAYS(NOW())
SELECT * FROM tb_log WHERE DATE_FORMAT(create_date,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d')
#近3分钟
SELECT * FROM tb_log WHERE create_date >= DATE_SUB(NOW(),INTERVAL 3 MINUTE)
#近7天
SELECT * FROM tb_log WHERE create_date >= DATE_SUB(NOW(),INTERVAL 7 DAY)
#近30天
SELECT * FROM tb_log WHERE create_date >= DATE_SUB(NOW(),INTERVAL 30 DAY)
#本周
SELECT * FROM tb_log WHERE YEARWEEK(create_date ,1) = YEARWEEK(NOW(),7)
#本月
SELECT * FROM tb_log WHERE DATE_FORMAT(create_date,'%Y-%m')=DATE_FORMAT(NOW(),'%Y-%m')
#本季度
SELECT * FROM tb_log WHERE QUARTER(create_date)=QUARTER(NOW())
#本年度
SELECT * FROM tb_log WHERE YEAR(create_date)=YEAR(NOW())
#上一季度的数据
SELECT
customer_id,metric,COUNT(*)
FROM
customer_body_metrics
where
QUARTER(create_time)=QUARTER(DATE_SUB(now(),interval 1 QUARTER))
GROUP BY
metric,customer_id
SELECT
customer_id,metric,count(*)
FROM (
SELECT customer_id,metric,create_time FROM customer_body_metrics UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_0 UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_1 UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_2 UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_3 UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_4
)cbm
where
QUARTER(cbm.create_time)=QUARTER(DATE_SUB(now(),interval 1 QUARTER))
GROUP BY
metric,customer_id
having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前。而 having子句在聚合后对组记录进行筛选
SELECT
customer_id,metric,count(*)
FROM (
SELECT customer_id,metric,create_time FROM customer_body_metrics UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_0 UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_1 UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_2 UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_3 UNION
SELECT customer_id,metric,create_time FROM customer_body_metrics_4
)cbm
where
QUARTER(cbm.create_time)=QUARTER(DATE_SUB(now(),interval 1 QUARTER))
GROUP BY
metric,customer_id
HAVING
count(*) >= 15
查询本季度的客户指标表中,体重/血压/血糖检测次数超过15次的数据
SELECT
distinct customer_id
FROM (
SELECT * FROM customer_body_metrics UNION
SELECT * FROM customer_body_metrics_0 UNION
SELECT * FROM customer_body_metrics_1 UNION
SELECT * FROM customer_body_metrics_2 UNION
SELECT * FROM customer_body_metrics_3 UNION
SELECT * FROM customer_body_metrics_4
)cbm
where
DATE_FORMAT(cbm.create_time,'%Y-%m')=DATE_FORMAT(DATE_SUB(now(),interval 1 MONTH),'%Y-%m')
and (
cbm.metric = "weight"
or
cbm.metric = "bloodPressure"
or
cbm.metric = "bloodGlucose"
)
GROUP BY
metric,customer_id
HAVING
count(*) >= 15
