Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共2 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:请教用SQL如何表达

1楼
HJG_HB950207 发表于: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楼
有点蓝 发表于: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.统计时间
共2 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .03101 s, 2 queries.