Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: TobiWay am Mai 11, 2015, 07:55:21

Titel: Abfrage modellieren
Beitrag von: TobiWay am Mai 11, 2015, 07:55:21
Guten morgen,

meine jetzige Abfrage sieht folgendermaßen aus:
SELECT VgNr, REAKTIONSZEIT AS ReakZeit, PROZESSFOLGE_ALTERNATIVE
FROM [01b Report_I_IA_IT_ERP]
ORDER BY [01b Report_I_IA_IT_ERP].VgNr, PROZESSFOLGE_ALTERNATIVE;


Und führt zu folgender Tabelle im Anhang. 

Es kommen in der Spalte VgNr noch doppelte Werte raus. Ich möchte jetzt aber nur die Zeilen haben die mit einer ReakZeit gefüllt sind und bei doppelten VgNrs will ich die Zeile bei denen in PROZESSFOLGE_ALTERNATIVE (PROZESSFOLGE_ALTERNATIVE=1 geht nicht, da es auch mal bei 2,3,... zu zählen beginnt) der kleinste Wert steht.

Vielen Dank für die Hilfe  :D
Titel: Re: Abfrage modellieren
Beitrag von: Hondo am Mai 11, 2015, 09:12:18
Hallo,
du hast sicherlich noch ein ID-Feld als Primärschlüssel? denn das benötigst du.
Außerdem solltest du unbedingt auf Leerzeichen in Feldnamen verzichten. Durchgängig groß schreiben solltest du nur Primär und Sekundärschlüssel. Außerdem2 macht ein Alias die Abfrage doch wesentlich leichter lesbar.

Die Abfrage sieht dann so aus:

SELECT R.VgNr, R.REAKTIONSZEIT AS ReakZeit, R.PROZESSFOLGE_ALTERNATIVE
FROM 01b_Report_I_IA_IT_ERP as R
Where R.ID In (SELECT R2.ID FROM 01b_Report_I_IA_IT_ERP As R2 WHERE R2.PROZESSFOLGE_ALTERNATIVE <=1 AND R2.REAKTIONSZEIT <>'0' GROUP BY R2.ID)
ORDER BY R.VgNr, R.PROZESSFOLGE_ALTERNATIVE


Nochwas, du hast VgNr und Reaktionszeit als Text-Variablen deklariert. Wenn du mit diesen Werten später rechnen möchtest solltest du einen Zahlenwert verwenden.

Gruß Andreas
Titel: Re: Abfrage modellieren
Beitrag von: ebs17 am Mai 18, 2015, 23:43:49
SELECT
   X.VgNr,
   X.REAKTIONSZEIT AS ReakZeit,
   X.PROZESSFOLGE_ALTERNATIVE
FROM
   [01b Report_I_IA_IT_ERP] AS X
      INNER JOIN
         (
            SELECT
               VgNr,
               MIN(PROZESSFOLGE_ALTERNATIVE) AS MinPA
            FROM
               [01b Report_I_IA_IT_ERP]
            GROUP BY
               VgNr
         ) AS Y
         ON X.VgNr = Y.VgNr
            AND
         X.PROZESSFOLGE_ALTERNATIVE = Y.MinPA