ich die folgende Fehlermeldung auf der unten kopiert Abfrage erhalten:Ein Aggregat kann nicht in einer ON-Klausel erscheinen, es sei denn
Ein Aggregat kann nicht in einer ON-Klausel erscheinen, wenn es in einer Unterabfrage in einer HAVING-Klausel enthalten ist, oder Liste auswählen, und die Spalte, die aggregiert wird, ist eine äußere Referenz.
Da es keine 1 zu 1 auf d.VCMN und h.VDMN beitreten möchte ich mich auf d.VCMN beitreten < = max (h.VDMN) für diesen h.P_ID, b.S_U_ID
Wie richte ich ein SQL für diese Situation ein?
SELECT DISTINCT H.P_ID
,B.S_U_ID
,H.vdmn
,D.VCMN AS VCMN _d
,C.I_A_ID
,D.I_A_V_ID
FROM PSH H
LEFT JOIN PSU B ON h.SH_ID = B.SH_ID
LEFT JOIN PPA C ON b.UA_ID = C.PA_ID
LEFT JOIN PIA_V D ON c.IIA_ID = d.IA_ID
AND D.VCMN <= max(H.VDMN)
Bitte geben Sie Beispieldaten und gewünschte Ergebnisse an. Ihre Anfrage lässt viel Interpretationsspielraum offen. Ich sollte hinzufügen, dass die Verwendung von 'Select distinct' mit mehreren Joins auch sehr verdächtig ist. –
Verwenden Sie eine sub.query, d. H. '... <= (wählen Sie max (VDMN) FROM ...)' – jarlh
wenn Sie sagen, max (H.VDMN) - über welche Gruppe möchten Sie den MAX wissen? – Cato