查询根据该行中两个字段的匹配选择两行

问题描述 投票:0回答:1

我正在尝试构建一个查询,它将为我提供一个相互两行的字段,但我需要一些帮助来构建正确的查询。这是我在Excel中呈现的数据(在SQL表中它是相同的):

我们有两个下拉菜单,一个用于旅程的起点和终点。一旦用户选择了起点,就会过滤下拉列表以仅获得从该起点开始的目的地。

现在,根据屏幕截图,如果用户选择'Mazarron'作为起点,'Albacete'作为终点,我想根据起点和终点得到提供该选项的行的名称,这意味着此外,终点的停止顺序需要比起点的止损单值更大。在我们的例子中,我应该得到'Aguilas-Madrid'和'Puerto de Mazarron-Madrid',而不是'Puerto de Mazarron-Madrid'线。

当我使用两个参数或@start和@end点时,最好的方法是过滤那些结果?

sql sql-server tsql
1个回答
0
投票

这是一个相对简单的示例,还有其他方法可以做到这一点。但这应该可以让你得到你想要的东西。

没有停止订单

select line 
from mytable 
where nameoftown = @end 
and line in (
select line from mytable where nameoftown = @start)

根据要求更新停止订单,这有点复杂,我没有测试,但应该是你需要的:

select line 
from mytable end
join (select line, stoporder from mytable where nameoftown = @start) start 
     on start.line = end.line and start.stoporder < end.stoporder
where end.nameoftown = @end 
© www.soinside.com 2019 - 2024. All rights reserved.