Ich habe mehrere Antworten auf verwandte Fragen gelesen, aber keiner von ihnen kann auf diesen Fall angewendet werden.SQL-Get höchsten Datensatz aus der Gruppe an einer anderen Tabelle
Ich habe eine Tabelle TableA
wo mehrere Gruppen aufgeführt sind, mit ihrer Punktzahl:
GROUP|SCORE
Blue | 0
Green| 0
Red | 0
Orange| 0
Auf einem anderen Tisch TableB
habe ich die Teile jeder Gruppe und ihre individuellen Score (Status), die drei haben verschiedene Werte:
- G (Good)
- A (Average)
- B (Bad)
So tableB
ist:
GROUP|PART|STATUS
Blue | 3H2| A
Blue | 4NQ| G
Blue | W9X| A
Green| 65D| G
Red | 73F| B
Red | 91G| A
Ich brauche die Partitur auf TableA
auf folgende Weise zu aktualisieren:
- Wenn der beste Status zwischen den Teilen der Gruppe
G
, Gruppe-Score ist 3 - Wenn der beste Status zwischen den Teilen der Gruppe ist
A
, Gruppenbewertung 2 - Wenn der beste Status zwischen den Teilen der Gruppe
B
ist, Gruppen Score ist 1
ich ein paar Tage gewesen geht um thi s und ich kann keine Lösung finden. Danke Jungs. Btw, verwende ich Zugang 2013
Zu allererst Sie eine Tabelle für den Status haben sollten den Rang enthält, So müssen Abfragen nicht selbst wissen, ob Status 'A' höher als 'G' usw. ist. Dann sollten Sie den Score in Tabelle A überhaupt nicht speichern, weil das überflüssig wäre. Wie Sie selbst sagen: Der Status einer Gruppe kann aus Tabelle B ermittelt werden. –
@ThorstenKettner um zu wissen, welcher Rang höher ist, könnte er 'CASE Ausdruck' verwenden. –
@Stanislovas Kalašnikovas: Ja, in jeder Frage. Und mach niemals Tippfehler. Und wenn Sie den Status "H" für schrecklich einführen möchten, müssen alle Abfragen geändert werden. Sie könnten genauso gut Buchstaben für die Gruppen verwenden. G wäre "Grün" und "R" wäre "Rot" und wieder könnten Sie einen CASE-Ausdruck verwenden. Verstehst du, was ich meine? :-) –