Hallo Forum
Beim Suchen nach einer Lösung bin ich auf dieses Forum gestossen.
Habe eigentlich ein lächerliches Thema, das mich aber schon viel Zeit gekostet hat.
Folgende Tabelle:
T_TRAD_UPE_SB mit folgenden Spalten:
Per Update soll das Feld max = 1 gesetzt werden, bei den Datensätzen (es können mehrere DS sein), die in der Gruppe(GROUP BY Z_TLN, UPE_QUELLE, GUELTIG_AB) den maximalen UPE haben.
Ich schaffe es nicht (roter Bereich), den Subselect so zu formulieren, dass ich die ID´s der betroffenen Datensätze (UPE_PK) mit dem höchsten UPE der Gruppe bekomme.
also so ungefähr:
Ein Subselect
SELECT Max(src.VAL) FROM ATLANTIS src GROUP BY src."G1", src."G2", src."G3" funktioniert.
Wie bekomme ich jetzt dazu von genau diesen Datensätzen mit MAX Werten in der Gruppe die jeweiligen PK`s zurück?
Vielleicht läßt es sich auch mit Analysefunktionen erschlagen, da bin ich aber noch total feucht hinter den Ohren.
Vielen Dank für einen kurzen Tip... oder gerne auch 2-3 gute Suchbegriffe für Google.
Ich finde aktuell immer nur Lösungen über die max(ID) also neuesten Datensatz oder Lösungenansätze,
wenn es nur einen Datensatz mit MAX Wert gibt usw... was aber nicht weiter hilft.
Habe schon in einem anderen Forum angefragt, jedoch nur Lösungen erhalten, die auf Oracle leider nicht laufen...
Euch bereits jetzt vielen Dank!
Atlantis
Beim Suchen nach einer Lösung bin ich auf dieses Forum gestossen.
Habe eigentlich ein lächerliches Thema, das mich aber schon viel Zeit gekostet hat.
Folgende Tabelle:
T_TRAD_UPE_SB mit folgenden Spalten:
- UPE_PK (PK zum Unverbindlichen VK Preis)
- Z_TLN (Teilenummern)
- GUELTIG_AB (Preisgültigkeit)
- UPE_QUELLE (Datenquelle aus welcher der Preis stammt 1 oder 2)
- UPE (Unverbindlicher VK Preis)
- MAX (Kenzzeichnungsflag der Datensätze, die innerhalb der Gruppe
ZTL; GUELTIG_AB & UPE_QUELLE den Max Preis haben
Per Update soll das Feld max = 1 gesetzt werden, bei den Datensätzen (es können mehrere DS sein), die in der Gruppe(GROUP BY Z_TLN, UPE_QUELLE, GUELTIG_AB) den maximalen UPE haben.
Ich schaffe es nicht (roter Bereich), den Subselect so zu formulieren, dass ich die ID´s der betroffenen Datensätze (UPE_PK) mit dem höchsten UPE der Gruppe bekomme.
also so ungefähr:
SQL:
update T_TRAD_UPE_SB dst
SET
dst.MAX = 1
WHERE
dst."UPE_PK" = src."UPE_PK"
AND
dst."UPE" IN (SELECT Max(src.UPE)
FROM T_TRAD_UPE_SB src
GROUP BY
src."Z_TLN", src."UPE_QUELLE", src."GUELTIG_AB") ;
Ein Subselect
SELECT Max(src.VAL) FROM ATLANTIS src GROUP BY src."G1", src."G2", src."G3" funktioniert.
Wie bekomme ich jetzt dazu von genau diesen Datensätzen mit MAX Werten in der Gruppe die jeweiligen PK`s zurück?
Vielleicht läßt es sich auch mit Analysefunktionen erschlagen, da bin ich aber noch total feucht hinter den Ohren.
Vielen Dank für einen kurzen Tip... oder gerne auch 2-3 gute Suchbegriffe für Google.
Ich finde aktuell immer nur Lösungen über die max(ID) also neuesten Datensatz oder Lösungenansätze,
wenn es nur einen Datensatz mit MAX Wert gibt usw... was aber nicht weiter hilft.
Habe schon in einem anderen Forum angefragt, jedoch nur Lösungen erhalten, die auf Oracle leider nicht laufen...
Euch bereits jetzt vielen Dank!
Atlantis
Zuletzt bearbeitet von einem Moderator: