Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

Du kannst doch einfach in einem Subselect alle Abfragen wo der Preis passt und dann mit der Durchschnittsmethode (kA wie die genau heißt) rechnest den schnitt aus..wenn es nur einen Preis gibt, dann eben nur einen, bei 2 aus 2 usw

mfg

Geschrieben

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

Geschrieben
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

Geschrieben

Hey super, ich habs jetzt im prinzip genauso gemacht, nur hab ich es mit nem leftjoin gemacht, was ist nochma genau der unterschied zum inner join?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...