Zwei Fragen:
1. Beim inneren Select wird ein "Group By" nur auf einen Teil der Ergebnisspalten gemacht. Das funktioniert doch aber gar nicht, wenn die restlichen Spalten nicht Aggregate wie SUM, AVG etc. sind.
2. Wofür wird denn überhaupt ein äußeres Select um das innere herumgelegt? Würde nicht etwas in der Art
SQL-Code:
SELECT n.id, n.bez, n.lft, n.rgt,
count(*)-1+(n.lft>1) AS level
FROM conf n, conf p
WHERE n.lft BETWEEN p.lft AND p.rgt
AND (p.id != n.id OR n.lft = 1)
AND count(*)-1+(n.lft>1) = X
GROUP BY n.id
ORDER BY n.lft
zum gleichen Ergebnis führen? Wobei allerdings zusätzlich das "Group By"-Problem aus meiner ersten Frage berücksichtigt werden muss. Evtl. muss das "count(*)-1+(n.lft>1) = X" dann in eine Having-Klausel.