gpt4 book ai didi

php - mysql选择范围内的最后x天

转载 作者:行者123 更新时间:2023-11-30 01:14:54 24 4
gpt4 key购买 nike

此查询返回从今天到 90 天前的所有选定值:

 SELECT max(cases_visits.created_dt), users_profiles.account_num,
concat(cases.patient_first_initial,
cases.patient_middle_initial, cases.patient_last_initial) AS initials,
concat(users.first_name, ' ',users.last_name) as name
FROM cases
JOIN users_profiles
ON users_profiles.user_id=cases.doctor_id
JOIN cases_visits
ON cases.id=cases_visits.case_id

join users on users.id = cases.doctor_id

WHERE cases_visits.patient_visit_type = 'NP' && cases_visits.created_dt BETWEEN curdate() - INTERVAL 90 DAY AND SYSDATE()

group by users.first_name

我想找到一个现在将选择完全相同的内容的查询,但前提是前一个查询中不存在记录。示例:返回超过 90 天前的记录,但过去 90 天内没有记录。

我尝试这样做:(注意,查询中的 2013-07-03 距离我第一次运行已经过去了 90 天)

    SELECT cases_visits.created_dt, users_profiles.account_num,
concat(cases.patient_first_initial,
cases.patient_middle_initial, cases.patient_last_initial) AS initials,
concat(users.first_name, ' ',users.last_name) as name
FROM cases
JOIN users_profiles
ON users_profiles.user_id=cases.doctor_id
JOIN cases_visits
ON cases.id=cases_visits.case_id
join users on users.id = cases.doctor_id
WHERE cases_visits.created_dt < '2013-07-03'
group by users.first_name

我认为这没有给我正确的数据,因为我需要以某种方式排除过去 90 天内存在的记录。

这就是我尝试做的:选择过去 90 天的值 = 'NP' 的记录,然后我需要选择没有大于 90 天的 np 值的记录,但这些记录应该与第一个查询完全不同(即个人可能有 90 天内的案例,以及 180 天前的案例,我不需要他的记录。)

编辑:我忘了提及我已经尝试过此查询,但在“in”附近出现错误:

SELECT cases_visits.created_dt, users_profiles.account_num,
concat(cases.patient_first_initial,
cases.patient_middle_initial, cases.patient_last_initial) AS initials,
concat(users.first_name, ' ',users.last_name) as name
FROM cases
JOIN users_profiles
ON users_profiles.user_id=cases.doctor_id
JOIN cases_visits
ON cases.id=cases_visits.case_id
join users on users.id = cases.doctor_id
WHERE cases_visits.created_dt < '2013-07-03'
and cases_visits.patient_visit_type = 'NP'
and not in (select created_dt from cases_visits where cases_visits.patient_visit_type = 'NP' && cases_visits.created_dt BETWEEN curdate() - INTERVAL 90 DAY AND SYSDATE())
group by users.first_name

最佳答案

您可以使用子查询:

select * from table where ID NOT IN (select id from table where a=1);

这实际上会从表中选择与内部查询匹配的记录不匹配的记录。

关于php - mysql选择范围内的最后x天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19164589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com