我正在使用 iReport 来构建报告,我正在尝试找到父节点" group_name"基于给定的parent_group_id的值,并返回父值作为子值的值。
例如:
表:t1
id | parent_group_id | group_name
22ba9b80-303d-11e3-8108-002590ac9042 | NULL | Audio
37fdf930-34f5-11e3-8108-002590ac9042 | 22ba9b80-303d-11e3-8108-002590ac9042 | Audio Cables and bits
252ecfd0-303d-11e3-8108-002590ac9042 | 25824700-303d-11e3-8108-002590ac9042 | Audio Headphones
26858630-303d-11e3-8108-002590ac9042 | 22ba9b80-303d-11e3-8108-002590ac9042 | Audio Interfaces
d3e962b0-3dcb-11e3-883d-002590ac9042 | 3aa35f70-3691-11e3-8108-002590ac9042 | Audio Recording Stock
2d735bc0-303d-11e3-8108-002590ac9042 | 22ba9b80-303d-11e3-8108-002590ac9042 | Audio Roadcases
所以,如果我想获得' group_name'第二项,我希望它返回"音频",而不是"音频线和位"。如果我想获得' group_name"在第三项中,它还应该返回 - 其他一些未列出的值 - 等等
有没有办法用 JasperReports 中的任何xml,sql或 Java 功能执行此操作,还是可以单独使用SQL?
我基本上希望以递归的方式向后遍历多个文件系统(将会有超过1" root"文件,但名称不同),并且对于每个孩子,我想要那个孩子& #39; s root" group_name"替换孩子的实际" group_name"
编辑 - 我用实际值的样本更新了表 - 注意它们中的一些具有相同的" parent_group_id"作为null parent_group_id的那个?我想要那些,而不是说"音频线和比特"等,说"音频",目录的父母
答案 0 :(得分:0)
您可以通过SQL方式获取它。 试试吧:
SELECT parent.group_name FROM Group child LEFT JOIN Group parent ON (child.parent_id = parent.id) WHERE child.id = '01';