作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有下表
Source Destination Fare
A B 10
B C 5
B D 1
D C 1
A D 1
现在我想编写一个查询,它会给出两个城市之间的最低票价。
例如,如果我想去 A->C,那么最低票价是 2 A->D->C
这个问题用什么MS-Sql查询。
最佳答案
试试这个:
;WITH Paths AS (
-- Anchor query: get first step
SELECT CAST(CONCAT(Source, '->', Destination) AS VARCHAR(MAX)) AS Path,
Destination, Fare,
IIF(Destination = 'C', 1, 0) AS Terminate
FROM mytable
WHERE Source = 'A'
UNION ALL
-- Recursive part: get next step
SELECT CAST(CONCAT(Path, '->', t.Destination) AS VARCHAR(MAX)) AS Path,
t.Destination, Fare = t.Fare + p.Fare,
IIF(t.Destination = 'C', 1, 0) AS Terminate
FROM mytable AS t
JOIN Paths AS p ON t.Source = p.Destination
WHERE p.Destination <> 'C'
)
SELECT Path, Fare
FROM (
SELECT Path, Fare,
RANK() OVER (ORDER BY Fare) AS rnk
FROM Paths
WHERE Terminate = 1) AS t
WHERE t.rnk = 1
这是一种蛮力方法:它使用递归 CTE 来获取所有可能的路径。然后使用 RANK
我们可以选择最低票价的。
关于c# - 如何获得两个城市之间的最低票价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37421301/
我们正在开发旅游网站,用于预订航类、酒店、汽车等。它是基于产品的软件。客户(购买我们软件的)将成为“主要代理机构”。他的总交易将以 INR(印度卢比货币)为单位。航类、酒店或汽车预订总额仅以“印度卢比
有没有办法检查 Uber API 中的某些用户是否分摊了票价?我不是在谈论 UberPOOL,我们可以在 UberPOOL 中通过与乘客的“共享”属性来响应乘车请求来检查这一点。 最佳答案 根据 Ub
我是一名优秀的程序员,十分优秀!