0

特定のメニューの階層情報を取得するために、「select ... start with initial-condition connectbyrecurse-condition」構文を使用してクエリを作成しました。

select count(SUB_MENU_ID) from FND_MENU_ENTRIES_VL
start with MENU_ID = 76580
and SUB_MENU_ID is not null
connect by prior menu_id=sub_menu_id

O / P:16

ここで、レベル2まで手動でレコード数を取得するクエリを作成すると、出力は36になります。

select distinct(SUB_MENU_ID) from FND_MENU_ENTRIES_VL 
where MENU_ID = 76580
and SUB_MENU_ID is not null
union
select distinct(SUB_MENU_ID) from FND_MENU_ENTRIES_VL where MENU_ID in(
select distinct(SUB_MENU_ID) from FND_MENU_ENTRIES_VL where MENU_ID = 76580 
and SUB_MENU_ID is not null)

最初のクエリの何が問題になっているのか教えてください。

これが私のデータです:

SUB_MENU_ID MENU_ID
    67723   72570
    67723   72581
    67829   72582
    67849   76580
    67850   67849
    68039   72878
    70604   72578
    70702   72578
    70734   76458
    71330   76580
    72570   76580
    72578   76580
    72581   76580
    72582   76580
    72712   76475
    72878   76580
    73144   73145
    73145   76580
    73244   76580
    74226   71330
    74356   76580
    76457   76458
    76458   76580
    76459   76580
    76460   76462
    76461   76462
    76462   76580
    76463   76466
    76464   76466
    76465   76466
    76466   76580
    76467   72578
    76475   76580
    76591   76466
    77139   76580
    77140   77139
                                            67849
                                            71330
                                            72578
                                            72582
                                            72878
                                            73244
                                            74356
                                            76458
                                            76459
                                            76462
                                            77139
                                            76580
4

0 に答える 0