我想每周总结一些COUNT数据。这周从星期天开始。该查询必须占COUNT为0的星期。计数在两个日期。推荐日期和服务日期。我想要做的就是统计每周的推荐次数以及同一周内有多少个服务日期。这两个COUNTS没有关联。推荐可能会在1周内出现,但服务会再过一周完成。以COUNT两个日期列的星期总结
我的尝试: 1)我创建了一个日历表,其中包含我工作期间每天的条目。日期条目涵盖的时间超过了使用期限。 2)我在我的Select中有一个字段,由'Week Beginning'总结为 3)我在每个日期字段(引荐,访问)上都有COUNT字段。请注意,我用的不同,因为有一个访问多个服务代码,但我只需要他们算作1
下面是代码:
select
STR_TO_DATE(DATE_FORMAT(FROM_DAYS(TO_DAYS(calendar.datefield) - MOD(TO_DAYS(calendar.datefield) -1, 7)),'%m/%d/%Y'), '%m/%d/%Y') AS `Week Beginning`,
COUNT(DISTINCT opsData.`Patient Last Name`, opsData.`Patient First Name`, opsData.Discipline, opsData.`Referral Date`) as `Referrals`,
COUNT(DISTINCT opsData.`Patient Last Name`, opsData.`Patient First Name`, opsData.`Date of Service`) as Visits
from opsdata RIGHT JOIN calendar ON (DATE(opsData.`Referral Date`) = calendar.datefield)
where (calendar.datefield BETWEEN (SELECT MIN(DATE(opsData.`Referral Date`)) FROM opsdata) AND (SELECT MAX(DATE(opsData.`Referral Date`)) FROM opsdata))
group by `Week Beginning`
order by `Week Beginning` ASC
我遇到的问题是我只能根据RIGHT JOIN获得COUNTS中的1个准确的时间。如果我使用DATE(opsData。Referral Date
),则推荐计数正确,访问错误。如果我使用DATE(opsData。Date of Service
),那么访问是正确的,并且推荐COUNT是错误的。
任何想法?
我得到了与您推荐的新代码相同的结果。要运行测试以查看where子句是否是问题,我将其更改为:calendar.datefield> = date('2016/01/01')和calendar.datefield <= date('2016/06/10')和我得到了与您的代码和我的原始代码相同的结果。 – Gsm
在这种情况下,您需要提供样本数据,您从查询中收到的实际输出以及预期结果作为对问题的编辑。 – Shadow