| 

.NET C# Java Javascript Exception

5
Hallo liebe CK-Com,

heute wende ich mich mal an euch mit einer Frage aus einem für mich eher ungewöhnlichen Themengebiet.

Vorweg erst einmal die Pre-Conditions, also meine Datenbank-Situation:

Tabelle 1: Audits [Audit]
Audit-ID, etc. ...

Tabelle 2: Audit-Prozesse [AP]
Audit-Prozess-ID, Ranking, etc. ...

Tabelle 3: Audit-Prozess-Historie [APH]
Audit-Prozess-Historien-ID, Audit-ID, Audit-Prozess-ID, Datum, etc. ...

soll heißen, [APH] verweist auf [Audit] und [AP]
Da es sich um eine Historie handelt, gibt es natürlich mehrere Einträge pro Audit.
Ich benötige jetzt eine Auflistung aller Audits mit dem jeweils LETZTEN Audit-Prozess-Schritt aus der Historie.
Der letzte Audit-Prozess definiert sich aus [AP].Ranking gefolgt von [APH].Datum, also höchstes Ranking und bei gleichem höchstem Ranking entscheidet dann das Datum.
Diese Information sollte rein logisch eindeutig sein... wenn nicht darf ich wieder mit den Anwendern schimpfen, aber darum gehts hier ja grad nicht ;)

Ich bin hier noch schier am verzweifeln, ich bekomms beim besten willen nicht hin :(

Da ich für die Anzeige mehrere Felder aus [AP] und [APH] benötige, wären Sub-Queries eher unperformant*.

*: Sub-Queries in einem Join zur Audit-Tabelle wären noch machbar... nur im SELECT FROM als Row-Definition sollte hiervon Abstand genommen werden.

so far
Karill
News:
10.05.2013
Karill Endusa 1,5k 1 9
1 Antwort
3
Wenn ich die Aufgabe richtig verstanden habe, dann z.B. so:

select * 
from Audit A
join APH APH on APH.[Audit-Prozess-Historien-ID] = (
select top 1 [Audit-Prozess-Historien-ID]
from APH _APH
join AP _AP on _AP.[Audit-Prozess-ID]=_APH.[Audit-Prozess-ID]
where _APH.[Audit-ID] = A.[Audit-ID]
order by _AP.[Ranking] desc, _APH.Datum desc
)
10.05.2013
Floyd 14,6k 3 9
2
Sorry dass ich erst jetzt dazu komme, zu antworten...

ich danke dir viele viele viele Male :D
Diese kack Abfrage hat mich noch fast den Verstand gekostet xD
Karill Endusa 13.05.2013
2
Kein Problem. Freu mich wenn ich helfen kann.
Floyd 13.05.2013

Stelle deine Sql-Frage jetzt!