Foxtable(狐表)用户栏目专家坐堂 → 请教用SQL如何表达


  共有2977人关注过本帖树形打印复制链接

主题:请教用SQL如何表达

帅哥哟,离线,有人找我吗?
HJG_HB950207
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:394 积分:6027 威望:0 精华:0 注册:2015/2/17 10:18:00
请教用SQL如何表达  发帖心情 Post By:2023/8/24 19:02:00 [只看该作者]

表【出门统计】 字段: 车牌,统计时间,通过次数
表【出门清单】字段: 车牌,出门时间

统计每部车牌在统计时间前后10分钟范围内的出门次数。

用以下代码较慢:


For Each drt As DataRow In DataTables("出门统计").DataRows
   Dim CP As String = drt("车牌") 
    Dim DA1 As Date = drt("统计时间")
      Dim sp As New TimeSpan(0, 10, 0)
Dim dt1 As Date = dA1 + sp  
Dim dt2 As Date = dA1 - sp

Dim A As Integer = DataTables("出门清单").Compute("COUNT(车牌)", "出门时间 <= '#" & DT1 & "#' AND 出门时间 >= '#" & DT2 & "#' AND 车牌='" & CP & "'")
drt("通过次数") = A
   Next


请教如何用SQL代码效率更高?谢谢!





 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110762 积分:563742 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/8/24 20:18:00 [只看该作者]

试试

select a.车牌,b.统计时间,count(a.车牌) as 通过次数 from 出门清单 as a inner join 出门统计 as b on  a.车牌=b.车牌 where DateDiff('n', 出门时间, DateAdd('n',10, 统计时间)) < 10 and DateDiff('n', DateAdd('n',-10, 统计时间), 出门时间) < 10 group by a.车牌,b.统计时间

 回到顶部