小编mpa*_*pag的帖子

Access (Jet) SQL:表 B 中的日期时间戳位于表 A 中的每个日期时间戳的两侧

第一句话

如果您只是想破解代码,您可以放心地忽略以下(包括)JOINs:Starting Off 部分。的背景结果只是作为背景。如果您想查看代码最初的样子,请查看 2015-10-06 之前的编辑历史记录。


客观的

最终,我想根据表中可用 GPS 数据的日期时间戳计算发射机(XXmit)的内插 GPS 坐标,这些数据SecondTable直接位于表中的观测值的两侧FirstTable

我的近期目标实现的最终目标是要弄清楚如何最好地加入FirstTableSecondTable得到这些侧翼的时间点。稍后我可以使用该信息我可以计算中间 GPS 坐标,假设沿等距柱状坐标系进行线性拟合(花哨的话说我不在乎地球是这个比例的球体)。


问题

  1. 有没有更有效的方法来生成最接近的前后时间戳?
    • 我自己通过抓取“之后”来修复,然后仅获取与“之后”相关的“之前”。
  2. 有没有更直观的方式不涉及(A<>B OR A=B)结构。
    • Byrdzeye提供了基本的替代方案,但是我的“现实世界”经验与他的所有 4 个加入策略的表现都不一致。但是完全归功于他解决了替代连接样式。
  3. 您可能有的任何其他想法、技巧和建议。
    • 到目前为止,byrdzeyePhrancis在这方面都非常有帮助。我发现Phrancis 的建议非常好,并在关键阶段提供了帮助,所以我会在这里给他优势。

对于问题 3,我仍然希望得到任何额外的帮助。 要点反映了我认为在个别问题上对我帮助最大的人。


表定义

半视觉表现

第一表

Fields
  RecTStamp | DateTime  --can contain milliseconds via VBA code (see Ref 1) 
  ReceivID  | LONG
  XmitID    | …
Run Code Online (Sandbox Code Playgroud)

join ms-access aggregate datetime

21
推荐指数
2
解决办法
646
查看次数

SQL Server 2008 R2 中的超前/滞后实现:超出最大内存

背景

我正在尝试建立一个“访问”序列,其中如果在基本相同的地方(General_Location)检测到动物,则算作一次访问,但如果它去其他地方然后返回,则是对同一位置的额外访问。因此,如果在一个Location序列
A1, A2, A3, A3, A3, A1, B2, D4, A2
中检测到动物,例如所有 A(n) 位置都属于General_Location“A”,则前 6 个检测为访问 1 (@A),接下来为访问 2 (@B),接下来为访问 3 (@D),接下来是访问 4(返回 @A)。

由于LAG并且LEAD在 SQL Server 2008R2 中不可用(也不UNBOUNDED PRECEDINGPARTITIONing 子句中),我正在尝试解决此SQL 权威博客条目中所述的变通方法。

我遇到了以下内存问题(更不用说计算时间了):

WITH s AS (
    SELECT
        RANK() OVER (PARTITION BY det.Technology, det.XmitID ORDER BY DetectDate ASC, ReceiverID ASC) as DetID,
        COALESCE(TA.AnimalID, det.Technology+'-'+cast(da.XmitID AS nvarchar), 'BSVALUE999') as AnimalID,
        det.Technology, det.XmitID, DetectDate, det.location as …
Run Code Online (Sandbox Code Playgroud)

performance sql-server sql-server-2008-r2 window-functions query-performance

7
推荐指数
1
解决办法
2010
查看次数