我正在使用一个黑盒数据库,它不是我创建的,也不能编辑。另外,这个select查询需要在jasper报表中运行,所以我不能编写存储过程。
我有一个库存系统,它使用一个父/子映射表,并在每次库存状态发生变化时生成新的键。我正在使用两个表,这些是重要的字段和一个简化的查询:
allinv,包含字段: invmaster invkey
和
包含字段的pclink (对应于上面allinv的invkey):父子
以下查询适用于一个库存项目,并按预期显示进度,但它需要知道根并提供主密钥。
我的问题是,如果我需要用这种结构返回所有库存项目(删除where子句),有没有一种方法可以自动检测根元素并将其设置为'start with‘或类似的东西,以便我可以将其作为分析窗口查询的子查询,以便在此过程中提取根、叶和状态?
select
ai.invkey AS sxkey,
stl.parent as parent,
stl.child as child,
level as lvl,
CONNECT_BY_ISLEAF as IsLeaf,
CONNECT_BY_ROOT(STL.parent) as root
from eprog.allinv ai
left join eprog.pclink stl
on ai.invkey = stl.parent
where invmasterkey = 'SA3010401'
start with stl.parent = '#gRR5'
connect by nocycle prior stl.child = stl.parent;发布于 2018-07-03 07:29:23
我不确定我是否完全理解您的问题,但您肯定可以这样做:
START WITH stl.parent IS NULL从这些行开始您的分层查询。
https://stackoverflow.com/questions/51139660
复制相似问题