我正在尝试构建一个查询,它将为我提供一个两行相互的字段,但我需要一些帮助来构建正确的查询。这是我在Excel中呈现的数据(在SQL表中它是相同的):
我们有两个下拉菜单,一个用于旅程的起点和终点。一旦用户选择了起点,就会过滤下拉列表以仅获得从该起点开始的目的地。
现在,根据屏幕截图,如果用户选择'Mazarron'作为起点而'Albacete'作为终点,我想根据起点和终点获取提供该选项的行的名称,以及这也意味着终点的止损单需要比起点的止损单值更大。在我们的例子中,我应该得到'Aguilas-Madrid'和'Puerto de Mazarron-Madrid',而不是'Puerto de Mazarron-Madrid'线。
当我使用两个参数或@start和@end点旅行时,过滤这些结果的最佳方法是什么?
答案 0 :(得分: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