Stefan Falz: ORACLE - Unterabfrage, wie?

Beitrag lesen

Hallo Beate,

zu Deiner ersten Frage

select a.href, count(*)*100/b.spalte as QUANTUM from TABELLE1 a,
TABELLE2 b  group by a.href, b.spalte order by QUANTUM desc, href  
HAVING rownum < 16;
------

Du kannst due Ausgabe nach einer Gruppierung nicht mit einer WHERE-
Klausel einschränken. Dafür gibt es HAVING. Mit WHERE kannst Du lediglich
die Ergebnisse einschränken, die danach von GROUP BY zusammengefasst werden.

Zu Deiner 2. Frage
SELECT TRUNC(123.456, 2) FROM DUAL Ergibt 123.45

Tschau, Stefan

Hallo ForumerInnen,

folgende Abfrage unter ORACLE funktioniert nicht, weil der where-Teil am Ende steht:

select a.href, count(*)*100/b.spalte as QUANTUM from TABELLE1 a, TABELLE2 b  group by a.href, b.spalte order by QUANTUM desc, href  where rownum < 16;

1.) Wer kann mir sagen, wie ich den Ausdruck modifizieren muß, damit von dem Gesamtergebnis wirklich nur die ersten 15 Zeilen ausgegeben werden? Der Ausdruck "group by" MUSS vor dem where-Teil kommen. Vielleicht über eine Zwischentabelle?

2.)Unter ORACLE wird mir das Ergebnis (wenn es denn mal ohne where angeschaut wird) mit zuvielen Nachkommastellen ausgegeben. Wie kann ich errreichen daß die Ausgabewerte nur zwei Nachkommastellen haben?

Gruß

Beate Mielke