Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo, ich beschäftige mich schon seit längerem mit PL/SQL, komme aber nicht auf die LÖsung folgender Problemstellung:

Ich habe eine Tabelle mit folgenden Daten:

Kunde A, gekaufter Artikel x, Preis 1

Kunde A, gekaufter Artikel Y, Preis 2

Kunde B, gekaufter Artikel Z, Preis 3

.....

Jetzt würde ich gerne eine Abfrage so gestalten, dass pro Kunde der gesamte Umsatz ausgegeben wird. Das Ergebnis sollte dann in etwa so aussehen:

Kunde A hat einen Umsatz von xxx Euro

Kunde B hat einen Umsatz von xxx Euro

.....

Die Abfrage für einen einzelnen Kunden ist kein Problem, aber ich schaffe es einfach nicht für alle Kunden gleichzeitig......

Wer hat einen Tip?

Geschrieben

also so ganz krieg ich das immer noch nicht hin! Mit folgendem Ausdruck klappt des ganze einfach nicht. Mein SQL-Developper meint dann: Komponente 'Preis' muss deklariert werden.


create or replace

PROCEDURE KLAUSUR_1B 


AS


Cursor kunde_cursor IS

  SELECT k.vorname, sum(l.preis)

  FROM (kunde k inner join download d on k.kundennummer =d.kundennummer)

    inner join lied l on d.liednummer = l.liednummer

    GROUP BY k.vorname;


BEGIN


For kunde_record IN kunde_cursor LOOP

  dbms_output.put_line('Name: '||kunde_record.vorname||' Umsatz: '||kunde_record.preis);

  END LOOP;


END;

Wo liegt der Fehler???

Vielen DAnk schon mal!!!

Geschrieben
Wo liegt der Fehler???

Die Spalte heißt nicht mehr Preis, sondern sum(l.preis) (siehst Du auch, wenn Du das SQL einfach mal so ausführst). Um das zu ändern, vergibst Du einfach einen Spaltenalias:

SELECT k.vorname, sum(l.preis) [b]AS preis[/b]

Dim

Geschrieben

Vielen vielen Dank, das hat geholfen!

Nur noch eine Frage: Wenn ich jetzt in der SELECT-Anweisung zusätzlich den Nachnamen abfrage also

SELECT [B]k.nachname[/B], k.vorname, sum(l.preis) as preis

kommt die Fehlermeldung "Kein Group-BY Ausdruck". Wie kann ich das lösen?

Geschrieben

Um genau Dein Beispiel aufzugreifen finde ich, solltest Du ein group by kundennummer machen. Vornamen sind öfters identisch und auch Nachnamen reichen nicht zweifelsfrei.

Für die Funktionsweise ist das egal, nur die Ergebnismenge kann sich u.U. ändern :D

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...