Komplexe Abfrage

Hallo zusammen
ich habe folgende Daten:

ID ANALYSE_ID REC_STATUS SERVICE SERVICE_ID SYSTEM NET_ID CELL DISTANCE MDS_CELL_STATUS_ID ACT_DATE
238559 2 O Data100 1 GSM D REBA1D 3023 4
238560 2 O Data100 3 UMTS G REBA1G 3023 4
238561 2 O Data500 4 UMTS G REBA1G 3023 4
238562 2 O Voice 1 GSM D REBA1D 3023 4
238563 2 O Voice 1 UMTS G REBA1G 3023 4
238564 2 P Data100 5 UMTS
238565 2 P Data100 4 GSM D AEHS1D 982 3 05-Sep-12
238566 2 P Data500 5 UMTS
238567 2 P Voice 4 GSM E AEHS1E 982 3 05-Sep-12
238568 2 P Voice 4 GSM D AEHS1D 982 3 05-Sep-12

(Entschuldigt die Darstellung. Irgendwie schaffe ich es nicht das schön in einer Tabelle anzuzeigen…)

Ich möchte hier nun 6 Records erhalten. Jeweils einer pro REC_STATUS und SERVICE. Also O/Data100, O/Data500, O/Voice und dasselbe für P. Wie ihr seht gibt es jeweils mehrere Datensätze für Data100 und Voice. Die Logik ist nun wie folgt:

  1. Datensatz mit niedrigster Service_id;

Falls 1. noch keine eindeutige Lösung bieten würde (wie bei ID 238562 und 238563):
2. SYSTEM UMTS vor SYSTEM GSM

Falls 2. noch keine eindeutige Lösung bieten würde (wie bei ID 238567
und 238568):
3. NET_ID D vor NET_ID E

Vielen Dank für eure Feedbacks. Bei Fragen bitte nicht zögern.

Gruss
Stefan

Moin Moin,

ich habe folgende Daten:

ID ANALYSE_ID REC_STATUS SERVICE SERVICE_ID SYSTEM NET_ID CELL
DISTANCE MDS_CELL_STATUS_ID ACT_DATE
238559 2 O Data100 1 GSM D REBA1D 3023 4
238560 2 O Data100 3 UMTS G REBA1G 3023 4
238561 2 O Data500 4 UMTS G REBA1G 3023 4
238562 2 O Voice 1 GSM D REBA1D 3023 4
238563 2 O Voice 1 UMTS G REBA1G 3023 4
238564 2 P Data100 5 UMTS
238565 2 P Data100 4 GSM D AEHS1D 982 3 05-Sep-12
238566 2 P Data500 5 UMTS
238567 2 P Voice 4 GSM E AEHS1E 982 3 05-Sep-12
238568 2 P Voice 4 GSM D AEHS1D 982 3 05-Sep-12

(Entschuldigt die Darstellung. Irgendwie schaffe ich es nicht
das schön in einer Tabelle anzuzeigen…)

Ich möchte hier nun 6 Records erhalten.
Jeweils einer pro REC_STATUS und SERVICE. Also O/Data100, O/Data500, O/Voice und dasselbe für P.

ok, also eine Gruppierung auf REC_STATUS & SERVICE (1. Wert oder MAX)

Die Logik ist nun wie folgt:

  1. Datensatz mit niedrigster Service_id;

= Sortierung auf Service_id absteigend

Falls 1. noch keine eindeutige Lösung bieten würde (wie bei ID
238562 und 238563):
2. SYSTEM UMTS vor SYSTEM GSM

= Sortierung auf Service absteigend

Falls 2. noch keine eindeutige Lösung bieten würde (wie bei ID
238567 und 238568):
3. NET_ID D vor NET_ID E

= Sortierung auf NET_ID absteigend

Vielen Dank für eure Feedbacks. Bei Fragen bitte nicht zögern.

viel Spaß

Grüße aus Rostock
Wolfgang
(Netwolf)

Hallo Rolf
Danke schonmal für deine Antwort. Ich habe noch vergessen zu erwähnen dass ich schlussendlich die ID von dem entsprechenden Datensatz haben sollte…

Gruss
Stefan

Moin Moin,

Hallo Rolf

ich lasse mich umtaufen :smile:

Danke schonmal für deine Antwort. Ich habe noch vergessen zu
erwähnen dass ich schlussendlich die ID von dem entsprechenden
Datensatz haben sollte…

wenn du eine Abfrage machst, wirst du entsprechend deiner angegebenen Felder alles das bekommen was du benötigst. Also eine liste mit 6 Datensätzen :smile:

Poste doch hier mal den SQL-String, den du erstellt hast.

Grüße aus Rostock
Wolfgang
(Netwolf)

Entschuldige Wolfgang
keine Ahnung wie ich auf Rolf kam 8(

Ich habe einmal probiert das so umzusetzen und habe folgendes SQL

SELECT T\_Report\_Basis.ANALYSE\_ID,
 T\_Report\_Basis.REC\_STATUS,
 T\_Report\_Basis.SERVICE,
 MIN (T\_Report\_Basis.SERVICE\_ID) AS MinServiceID,
 FIRST (T\_Report\_Basis.SYSTEM) AS FirstSystem,
 FIRST (T\_Report\_Basis.NET\_ID) AS FirstNet\_ID,
 FIRST (T\_Report\_Basis.ID) AS FirstID
 FROM T\_Report\_Basis
GROUP BY T\_Report\_Basis.ANALYSE\_ID,
 T\_Report\_Basis.REC\_STATUS,
 T\_Report\_Basis.SERVICE
ORDER BY T\_Report\_Basis.ANALYSE\_ID,
 T\_Report\_Basis.REC\_STATUS,
 T\_Report\_Basis.SERVICE,
 FIRST (T\_Report\_Basis.SYSTEM) DESC,
 FIRST (T\_Report\_Basis.NET\_ID);

Es liefert allerdings nicht das was ich mir erhoffe. Ich weiss auch nicht ob das wirklich mit einem SQL umzusetzen ist? Ich habe jetzt einmal angefangen mit VBA den richtigen Datensatz zu finden. Wenn es mit einer Abfrage gehen würde wäre ich zufrieden, da ich aber keinen Weg dazu sehe und dringend ein Resultat brauche, gehe ich auch mal den unkonventionellen Weg…

Grüess
Stefan