SELECT * FROM Items WHERE ParentID IN ( SELECT ID FROM Items ) AND StoreID = 2 ORDER BY ParentID, Name #### my $select="SELECT * FROM Items WHERE StoreID = $storeID"; &ExecureDB($select); while ( my ($ID, $NM, $DES, $PI, $PRC)=$sth->fetchrow_array ) { my ($rate, $PAD); # Setup for   Padding unless ($PI == 0) { $rate=4; if ($lp == $PI) { $c1 = $ID; } # Last Parent ($lp) & 1st Child ($c1) elsif ($c1 == $PI) { $c2 = $ID; $rate*=2; } # Save 2nd Child ($c2) elsif ($c2 == $PI) { $c3 = $ID; $rate*=3; } # Save 3rd Child ($c3) elsif ($c3 == $PI) { $c4 = $ID; $rate*=4; } # Save 4th Child ($c4) else {$rate*=5;} $PAD="  " x $rate; } else { ($c1, $c2, $c3) = ('', '', ''); $lp=$ID; } # Clear Memory print "$PAD $NM - $PRC - $DES", br;