簡體   English   中英

根據兩個表值合並 SQL 表中的行

[英]Merge Rows in SQL Table based on two table values

我有一張包含旅行詳細信息的表格。 詳細信息以分布式方式保存。 我需要合並基於源和目標的行。 我的來源是 A,最終目的地是 D,我需要根據旅行日期將所有 3 行合並為 1 行,時間和距離之和。

表格詳細信息和預期輸出

我嘗試使用連接但無法根據條件進行操作。 不確定如何根據另一個表的值組合一個表的行。

您可以使用LEFT JOIN語句然后聚合:

SELECT Table2.Date,
       Table2.CarID,
       Table2.Source,
       Table2.Destination,
       SUM(Table1.Distance) AS Distance,
       SUM(Table1.[Time(Hours)]) AS [Time(Hours)]
FROM Table2
LEFT JOIN Table1
     ON  (Table1.Source BETWEEN Table2.Source AND Table2.Destination
     OR  Table1.Destination BETWEEN Table2.Source AND Table2.Destination)
     AND Table2.Date = Table1.Date
     AND Table2.CarID = Table1.CarID
GROUP BY Table2.Date,
         Table2.CarID,
         Table2.Source,
         Table2.Destination

這假設您的SourceDestination永遠不會重疊 - 就像您提供的示例一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM