[英]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
這假設您的Source
和Destination
永遠不會重疊 - 就像您提供的示例一樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.