Datenbankeinträge vergleichen und aussortieren

Konstantin

Grünschnabel
Hallo alle zusammen!

Ich habe folgendes Problem:

Ich habe eine Oracle Datenbank mit allen möglichen Spalten.
Eine von diesen Spalten beinhaltet die Seriennummern der Maschinen. Da jede Maschine mindestens 3mal getestet wird habe ich mindestens 3 Einträge pro Maschine (Die Anzahl der Zeilen in dieser Tabelle entspricht somit der Anzahl der Prüfungen pro Tag). Ich benötige hingegen die Anzahl der Maschinen .

Frage: Wie kann ich nun die Doppelten und noch häufiger vorkommenden Einträge so zählen lassen das die Anzahl der Maschinen Rauskommt?

MfG Konstantin
 
Hi!

Mit einem Group By kannst Du die "Seriennummern" zusammenfassen. So erscheint jede Seriennummer einmal - brauchst Du soetwas?
 
Wenn ich bei mir den Befehl Group anwende kommt die Fehlermedung:
siehe Anhang

Der SQL Text in meinem Query lautet:

SELECT * FROM TEST_RES_M group by SER_NUM

Hab ich da etwa einen Fehler drin?
 

Anhänge

  • fehler.bmp
    132,5 KB · Aufrufe: 32
Wenn du DISTINCT nach dem SELECT Schreibst dann erhälst du nur jeden eintrag einmal

Ansonsten ist es glaub ich irgendeine Count anweisung


MFG Lysander
 
also ich denke das wird nicht gehen, weil du nicht nur nach SER_NUM gruppieren kannst, da musst du dir mal anschauen was deine Keys sind, und dann die Sache mit ins GROUP aufnehmen.

SELECT * FROM TEST_RES_M GROUP BY SER_NUM, ID, ID2 (was du so hast als Key)

oder du machst das so, das ist quasi the same


SELECT COUNT(DISTINCT ser_num) FROM TEST_RES_M

dann haste deine Maschinenanzahl!

gruß Sebastian
 
Ich habe jetz folgenden Quelltext:
SELECT SER_NUM ,COUNT(*) FROM TEST_RES_M WHERE WHERE data BETWEEN '09.09.2003' AND '10.09.2003' GROUP BY SER_NUM

Das funktioniert so auch schon. Jetz habe ich folgendes neues Problem!

Und zwar:
Der count(*) Befehl liefert mir eine Spalte die mir sagt wie oft jede Seriennummer vorhanden ist.

Meine Frage: Kann ich nun eine Abfrage erstellen die mir sagt wie oft eine Seriennummer z.B. 2 mal vorkommt

MfG Konstantin
 
Zu meiner ersten Frage:

kann ich die Befehlszeile so abändern, dass ich die Spalten Data, Timer_num ... mit angezeigt bekomme? Das distinct soll aber nur auf die ser_num bezogen bleiben.

SELECT distinct ser_num FROM TEST_RES_M WHERE data BETWEEN '09.09.2003' AND '10.09.2003'

Gruß Konstantin :)
 

Neue Beiträge

Zurück