表X_PROGRAM_LOCATION中有多个记录。这个表包含x_program,location_Id,version。有多个x_program,在X_program的同名下有不同的location_id和各种版本。 我想编写一个查询,可以整理出所有x_program的更高版本中不可用的location_id,但它们是x_program的较低版本。
注意: - 我想要更低版本的location_Id的所有列表,以便我可以添加更高版本的那些。
答案 0 :(得分:0)
查看每个程序/位置组合的最大版本可能足以达到您的目的:
select x_program, location_id, max(version)
from x_program_location pl
group by x_program, location_id
通过计算最大版本并使用having子句,您可以获得不是最高版本的那些:
select x_program, location_id, max(version)
from x_program_location pl join
(select x_program, max(version) as maxv
from x_program_location
group by x_program
) xp
on pl.x_program = xp.x_program
group by x_program, location_id
having max(version) < max(maxv)