簡體   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