Hallo Leute,
ich hab mal eine Frage an kreative SQL-Köpfe.
Folgende Bsp-Tabelle beschreibt Bohrungsmarker.
[MID] [FK_BID] [Name] [Tiefe]
1 1 Sand 50
2 1 Sand 60
3 1 Sand 70
4 2 Granit 50
5 2 Gneis 60
6 2 Granit 70
Gleichnamige zusammenhängede Marker sollen zum tiefsten zusammengefasst werden.
Zielergebnis also:
[MID] [FK_BID] [Name] [Tiefe]
3 1 Sand 70
4 2 Granit 50
5 2 Gneis 60
6 2 Granit 70
Meine Idee war bisher:
Subquerie also im FROM-Block. Gefällt mir nur sekundär.
Außerdem gibt es hier die Einschränkung, dass in einer Bohrung eine Schicht nur einmal vorkammen darf. Gennante Abfrage liefert also zu obigen Bsp:
[MID] [FK_BID] [Name] [Tiefe]
3 1 Sand 70
5 2 Gneis 60
6 2 Granit 70
Wäre okay, gefällt mir aber nur bedingt.
Hat jmd ne bessere Idee?
Liebe Grüße,
Jan.
ich hab mal eine Frage an kreative SQL-Köpfe.
Folgende Bsp-Tabelle beschreibt Bohrungsmarker.
[MID] [FK_BID] [Name] [Tiefe]
1 1 Sand 50
2 1 Sand 60
3 1 Sand 70
4 2 Granit 50
5 2 Gneis 60
6 2 Granit 70
Gleichnamige zusammenhängede Marker sollen zum tiefsten zusammengefasst werden.
Zielergebnis also:
[MID] [FK_BID] [Name] [Tiefe]
3 1 Sand 70
4 2 Granit 50
5 2 Gneis 60
6 2 Granit 70
Meine Idee war bisher:
Code:
SELECT M.FK_BID, MID, Name, M.Tiefe FROM marker AS M INNER JOIN (SELECT FK_BID, MAX(Tiefe) AS Tiefe FROM marker GROUP BY BID, Name ORDER BY BID,Tiefe) AS X ON (M.BID = X.BID AND M.TIEFE = X.TIEFE)
Außerdem gibt es hier die Einschränkung, dass in einer Bohrung eine Schicht nur einmal vorkammen darf. Gennante Abfrage liefert also zu obigen Bsp:
[MID] [FK_BID] [Name] [Tiefe]
3 1 Sand 70
5 2 Gneis 60
6 2 Granit 70
Wäre okay, gefällt mir aber nur bedingt.
Hat jmd ne bessere Idee?
Liebe Grüße,
Jan.
Comment