also, die datenbank sieht wie folgt aus:
tabelle 1:
appln_id | ipc4 |
1 | H01R |
2 | H01R |
... | ... |
wobei mehrere ipc4 kategorien je appln_id vorkommen können.
Dann hier die tabelle 2:
w08_2 | ipc4 | weight |
1 | H01R | 0,5 |
2 | H01R | 0,6 |
Und das Endergebnis sollte dann sein:
appln_id | w08_2 | weight |
1 | 2 | 0,6 |
2 | 10 | 0,8 |
... | ... | ... |
Das bedeutet, ich merge zuerst Tab1 und Tab2 nach ipc4 und dann möchte ich den max Wert von weight und die jeweilige Kategorie "w08_2" in der der Max-Wert enthalten ist.
Meine (neu, habe es abgedatet damit nur eine Zeile mehr vorhanden ist) Abfrage lautet jetzt:
SELECT distinct a.appln_id,
min(b.w08_2),
max(weight) as weight
FROM tls209_appln_ipc a
inner join (select w08_2, max(weight) as weight, ipc4
from public.tls_contable
group by ipc4,w08_2) b
on b.ipc4=a.ipc4 and b.weight >0
WHERE a.appln_id<3
group by a.appln_id--, b.w08_2
order by appln_id,weight DESC;
wobei ich nicht den min-Wert von w08_2 sondern den max-Wert von weight und einfach die Kategorie/Zeile aus der das Maximum kommt.