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