繁体   English   中英

查询特定模式的旅行数据(VBA / SQL / MS Access)

[英]Query Travel Data for Certain Pattern (VBA / SQL / MS Access)

我需要某些SQL查询的帮助。 我有详细说明火车及其路线的数据。 它包含以下数据:

  1. 培养#
  2. 离开#
  3. 出发城市
  4. 出发国
  5. 到达城市
  6. 到达状态
  7. 约会时间

我需要查找其中Train#从一个城市到另一个城市到州外的旅行的实例。 请记住,在两个城市之间做更多的城市(例如3个城市,然后是州外)也同样有用。

例:

Train Starts in Chicago Departs to Chesterfield, IL
Departs Chesterfield, IL and Arrives at Springfield, IL
Departs Springfield, IL and Arrives at St. Louis Missouri

因此,在3行数据中,您将看到:

35, 500, Chicago, IL, Chesterfield, IL, 1/1/2014
35, 501, Chesterfield, IL, SpringField, IL, 1/1/2014
35, 502, SpringField, IL, St.Louis, MS, 1/1/2014

检测数据中此类实例的最佳方法是什么? 也许有一个“乘火车分组”#可以显示他们有多少次发车,而发车与另一个人的到来相匹配?

请注意:数据将包含数千行数据; 连续许多天都由多次Train#出发。 显然,例如,我们不想将2014年1月1日至2014年2月22日的偏离视为联系。 一个连接将需要相隔1-2天,甚至可以考虑。

以下内容将为您提供火车出境时的所有实例:

SELECT *
FROM YourTableName
WHERE [Departure State] <> [Arrival State]

您的语法可能会略有不同,具体取决于您的SQL风格。

编辑:随着更新的问题,现在我不清楚您在问什么。 从最初的问题中,我得知您想知道火车何时进入另一州。 您可以在每一行中获得该信息-如果出发州与到达州不同,则该州显然越过了州界。 因此,无需与其他行进行比较。 显然,您在询问其他问题-更多数据和预期结果将有助于更好地了解情况。

我很确定这会起作用。 基本上,您想对到达状态和离开状态相同的次数求和,并将其与给定火车的条目数进行比较。 您需要至少2条状态匹配的记录,并且您想要的总记录多于匹配记录(这表示至少有1条状态外记录)。

SELECT Train#, Sum(CASE WHEN [Departure State] = [Arrival State] THEN 1 ELSE 0) AS SameState, Sum(1) as TotRecords
FROM YourTableName
Group By Train#
HAVING Sum(CASE WHEN [Departure State] = [Arrival State] THEN 1 ELSE 0) >= 2
AND Sum(1) >= 3
AND Sum(CASE WHEN [Departure State] = [Arrival State] THEN 1 ELSE 0) < Sum(1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM