首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用sql查询来查找订购频率过高的客户?

使用sql查询来查找订购频率过高的客户?
EN

Stack Overflow用户
提问于 2009-02-19 12:17:28
回答 5查看 843关注 0票数 4

我的数据库实际上不是客户和订单,而是客户和眼睛测试的处方(以防有人想知道为什么我希望我的客户不那么频繁地下订单!)

我有一个眼镜连锁店的数据库,处方表中有分店ID号、患者ID号和他们检查眼睛的日期。随着时间的推移,患者将在数据库中列出不止一项视力测试。我如何才能获得在六个月内在系统中输入超过一次处方的患者列表。换句话说,如果一个处方的日期是,例如,在同一患者的前一个处方的日期的三个月内。

示例数据:

代码语言:javascript
复制
Branch  Patient DateOfTest
1      1          2007-08-12
1      1          2008-08-30
1      1          2008-08-31
1      2          2006-04-15
1      2          2007-04-12

我不需要知道结果集中的实际日期,也不一定要精确到三个月,只需要知道与以前的处方太接近的患者列表。在给定的示例数据中,我希望查询返回:

代码语言:javascript
复制
Branch   Patient
1       1

这种类型的查询不会经常运行,所以我并不过分担心效率。在我们的实时数据库中,处方表中有25万条记录。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-19 12:28:04

像这样的东西

代码语言:javascript
复制
select p1.branch, p1.patient
from prescription p1, prescription p2
where p1.patient=p2.patient
and p1.dateoftest > p2.dateoftest
and datediff('day', p2.dateoftest, p1.dateoftest) < 90;

应该……您可能想要添加

代码语言:javascript
复制
and p1.dateoftest > getdate()

以限制未来的测试处方。

票数 7
EN

Stack Overflow用户

发布于 2009-02-19 12:33:25

这将有效地使用(Branch, Patient, DateOfTest)上的索引,这当然是您应该拥有的:

代码语言:javascript
复制
SELECT Patient, DateOfTest, pDate
FROM (
  SELECT (
    SELECT TOP 1 DateOfTest AS last
    FROM Patients pp
    WHERE pp.Branch = p.Branch
      AND pp.Patient = p.Patient
      AND pp.DateOfTest BETWEEN DATEADD(month, -3, p.DateOfTest) AND p.DateOfTest
    ORDER BY 
      DateOfTest DESC
    ) pDate
  FROM Patients p
) po
WHERE pDate IS NOT NULL
票数 1
EN

Stack Overflow用户

发布于 2009-02-19 12:26:08

在路上:

代码语言:javascript
复制
select d.branch, d.patient
from   data d
where exists
( select null from data d1
  where  d1.branch = d.branch
  and    d1.patient = d.patient
  and    "difference (d1.dateoftest ,d.dateoftest) < 6 months"
);

此部分需要更改-我不熟悉SQL Server的日期操作:

代码语言:javascript
复制
"difference (d1.dateoftest ,d.dateoftest) < 6 months"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/565040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档