我有一张q_data
像这样的桌子:
cuid timestamp_from timestamp_to
A1 2014-12-01 22:04:00 2014-12-01 22:04:21
A1 2014-12-04 22:05:00 2014-12-04 22:05:25
A2 2014-12-06 20:04:00 2014-12-06 20:04:21
A2 2014-12-07 19:04:00 2014-12-07 19:04:21
和patients_
像这样的表:
cuid last_visit
A1 2014-12-03
A2 2014-12-05
我希望计算q_data中每个cuid的行数,以使timestamp_to早于Patient_中的last_visit日期。因此,对于上面显示的数据,我希望我的查询给出以下结果。
cuid day_count
A1 1
A2 1
我正在尝试使用以下查询执行此操作:
create table tmp
select
q.cuid as cuid,
count(distinct(q.query_to)) as day_count
from q_data q
inner join patients_ p on q.cuid = p.cuid
group by q.cuid
having datediff(p.last_visit, date(q.query_to)) >= 0
;
但我得到一个错误:
ERROR 1054 (42S22): Unknown column 'p.last_visit' in 'having clause'
如果有人可以帮助我理解查询中的错误,我将不胜感激。谢谢。
您选择的查询
select
q.cuid as cuid,
count(distinct(q.query_to)) as day_count
from q_data q
inner join patients_ p on q.cuid = p.cuid
group by q.cuid
having datediff(p.last_visit, date(q.query_to)) >= 0;
如果在您的haveing子句中有密切注意,您使用了2列,这些列不是select的一部分,因此这是无效的,并且随着您现在的获取而出现错误。
有一两件事你可以做的是移动,在where clause
作为
select q.cuid as cuid, count(distinct(q.query_to)) as day_count
from q_data q
inner join patients_ p on q.cuid = p.cuid
where datediff(p.last_visit, date(q.query_to)) >= 0
group by q.cuid
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句