当前位置:  开发笔记 > 编程语言 > 正文

sql查询找到太频繁订购的客户?

如何解决《sql查询找到太频繁订购的客户?》经验,为你挑选了1个好方法。

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

我有一个眼镜商链数据库,处方表有分支ID号,患者ID号和他们测试眼睛的日期.随着时间的推移,患者将在数据库中列出多个眼睛测试.如何获得六个月内在系统上输入一次以上处方的患者名单.换言之,例如,一个处方的日期是在同一患者的先前处方的日期之后的三个月内.

样本数据:

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

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

Branch   Patient
1       1

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



1> tehvan..:

像这样的东西

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;

应该......你可能想补充一下

and p1.dateoftest > getdate()

限制未来的测试处方.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有