SQL Datenbankabfrage

andre.g.sql

Neuer Benutzer
Beiträge
4
Hallo Zusammen,

ich darf eine Datenbankabfrage auf einer Oracle Datenbank mit SQL erstellen mit folgender Datenlage.

Beispiel 1:
Kunde A. Prozess A.
Zeile 1 - 01.01.2023 bis 30.06.2023 - Preisbestandteil A
Zeile 2 - 01.01.2023 bis 30.06.2023 - Preisbestandteil B
Zeile 3 - 01.01.2023 bis 30.06.2023 - Preisbestandteil C
Zeile 4 - 01.01.2023 bis 30.06.2023 - Preisbestandteil D
Zeile 5 - 01.01.2023 bis 30.06.2023 - Preisbestandteil E
Zeile 6 - 01.01.2023 bis 30.06.2023 - Preisbestandteil F
Zeile 7 - 01.01.2023 bis 31.01.2023 - Preisbestandteil G
Zeile 8 - 01.02.2023 bis 30.06.2023 - Preisbestandteil G

Zeile 9 - 01.07.2023 bis 31.12.2023 - Preisbestandteil A
Zeile 10 - 01.07.2023 bis 31.12.2023 - Preisbestandteil B
Zeile 11 - 01.07.2023 bis 31.12.2023 - Preisbestandteil C
Zeile 12 - 01.07.2023 bis 31.12.2023 - Preisbestandteil D
Zeile 13 - 01.07.2023 bis 31.12.2023 - Preisbestandteil E
Zeile 14 - 01.07.2023 bis 31.12.2023 - Preisbestandteil F
Zeile 15 - 01.07.2023 bis 31.12.2023 - Preisbestandteil G

Es geht bei der Abfrage also darum, die Preisbestandteile zu ermitteln, die in der Anzahl mehr Zeilen haben als die anderen Preisbestandteile.

Das betroffene Bestandteil "G" hätte somit 3 Ergebnisse im Count, die anderen Bestandteile nur 2.

Mein Problem:
Ich möchte in der Datenausgabe folgende Werte ausgeben:
Kunde, Prozess, das betroffene Bestandteil.

Als Ergebnis soll also herauskommen:
Kunde A, Prozess A, Preisbestandteil G

Wenn ich das Preisbestandteil in der Ausgabe hinzufügen möchte, funktioniert mein Count nicht mehr.

Kann mir jemand sagen wie ich vorgehen muss?

Danke vorab und viele Grüße
Andre
 
Werbung:
das ist sehr nebulös: welche Spalten genau hat Deine Tabelle, doch nur den Zeitraum und den Bestandteil. Kunde und Prozess ist konstant.

select bestandteil, count(*) from tabelle group by bestandteil limit 1
 
Werbung:
Das LIMIT1 ist überflüssig ohne ORDER BY aber grundsätzlich suchst du
Code:
SELECT kunde,prozess,preisbestandteil,count(*) AS anzahl FROM tabelle GROUP BY kunde,prozess,preisbestandteil ORDER BY kunde,prozess,preisbestandteil,count(*) DESC
Ich vermute, du hast eher das Problem das du den Zeitbestandteil im Select stehen hast und dir der dein count(*) zerhaut. Aber ein konkreter Code wäre schon besser, das ist jetzt nur geraten.
 
Zurück
Oben