Zum Inhalt springen

Problem bei Joinen


ostpower

Empfohlene Beiträge

Ich habe ein Problem und fürchte dass ich das mit reinem SQL nicht lösen kann sondern nur mit PL/SQL. Und zwar möchte ich an Datensätze einer tabelle1 Preis informationen aus einer 2. tabelle anhängen. Jetzt richten sich die preise nach bestimmten attributen der ersten tabelle. dabei kann es vorkommen, dass zu einem datensatz der tabelle1 vielleicht 10 Preise der zweiten tabelle passen, ist das der fall, möchte ich einen durchschnittswert aus den 10 Werten bilden und diesen dann anhängen, nur wie mach ich dass dann, dass praktisch erstmal abgefragt wird, ob mehrere Preise passen und dass dann davon der durchschnittswert genommen wird. Weil ohne solch ein script, nimmt er sich ja einfach einen (wahrscheinlich den ersten) Wert von den 10 und hängt ihn an den datensatz.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei einem Join kann sich die Anzahl der Sätze verändern (es wird nicht nur 1 passender Satz genutzt, sondern alle die passen)

Wenn du in Tabelle A 1 Satz hast, zu dem in Tabelle B 10 Sätze passen, dann hat deine Ergebnissmenge auch 10 Sätze.

Die Lösung für dein Problem ist also:

TabelleA Join TabelleB (dann hast du für einige Artikel mehrere Preise) und das Ergebnis mit GROUP BY / AVG aggregieren

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe ein Problem und fürchte dass ich das mit reinem SQL nicht lösen kann sondern nur mit PL/SQL. Und zwar möchte ich an Datensätze einer tabelle1 Preis informationen aus einer 2. tabelle anhängen. Jetzt richten sich die preise nach bestimmten attributen der ersten tabelle. dabei kann es vorkommen, dass zu einem datensatz der tabelle1 vielleicht 10 Preise der zweiten tabelle passen, ist das der fall, möchte ich einen durchschnittswert aus den 10 Werten bilden und diesen dann anhängen, nur wie mach ich dass dann, dass praktisch erstmal abgefragt wird, ob mehrere Preise passen und dass dann davon der durchschnittswert genommen wird. Weil ohne solch ein script, nimmt er sich ja einfach einen (wahrscheinlich den ersten) Wert von den 10 und hängt ihn an den datensatz.

Falls noch aktuell:


SELECT Tabelle1.Informationen, AVG(Tabelle2.Preis)

FROM Tabelle1 

INNER JOIN Tabelle2 ON Tabelle1.FK_ID = Tabelle2.PK_ID

GROUP BY Tabelle1.Informationen

Hoffe das passt, habs jetzt mal aussm Bauch heraus geschrieben :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...