回答

收藏

计算关联名称(VBA,SQL)的连续日期实例

技术问答 技术问答 233 人阅读 | 0 人回复 | 2023-09-12

我试图从数据集中确定连续日期(不包括周日)的例子。存储数据Access中间,我把所需的日期拖进去Excel。然后,我试图确定每个人提供的数据中有多少个例子。下面的例子。
4 p/ b# K' d; K  A2 Y$ t0 D, W: q3 D% P数据示例:
4 x' O( `* J# y  j, A' N| Name | Date of absence|| Bob  |  | | Jill |  || Bob  |  || Jill | |结果示例:8 E! J4 d* g" t5 r
Bob - 1 Instance,2 daysJill - 2 Instance,2 days我开始尝试使用它Excel在VBA使用循环通过循环经历每一个缺勤实例,直到每个人都完成工作/被淘汰,但代码变得非常繁琐和低效,更不用说这么慢获得更大的数据集了!我想知道是否可以查询数据库中的信息或编写更有效的东西。( M$ m* H* G- u
任何帮助或建议都将非常感激!
& }$ E+ n0 Y3 v. ]更新:
  e8 K; \3 Z% g, ]' J) T; B" K) @建议;
' F3 E7 {: R' t" h8 v$ JSql = "SELECT Absence.Racf,count(RecordDate) as dups" Sql = Sql & " FROMAbsence" Sql = Sql & " left outer join" Sql = Sql & " (select Racf,[RecordDate] IIf(Weekday([RecordDate],7)=1,2,1) as date1 from Absence) t1" Sql= Sql & " on Absence.RecordDate=t1.date1 and Absence.Racf=t1.Racf" Sql = Sql &" where date1 Is Not Null" Sql = Sql & " group by Absence.Racf"' [3 _: Q# s* y: o
但不幸的是,它在以下日期列表中返回7,而不是5。
; z% T) [9 g4 A' w! k* t7 @9 U日期:16年2月23日,24年2月16日,08年8月16日,10年8月16日,16年8月31日,10月24日,16年10月25日,$ U( R+ l1 E6 a3 ?" y
17年1月26日,2016年10月26日,17年1月26日
7 p7 {) o9 I8 r' C; h; h6 w6 c                                                               
( ]6 }" b+ |' f# [) w9 p; p    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则