# SQL Prozentualer Anteil



## Wang (9. Dez 2011)

Hallo allerseits,

ich habe bei der folgenden Aufgabe leider ein Problem und hoffe, dass mir jemand helfen kann:







Mit meinem bisherigen Code erhalte ich nur das Gesamtgewicht eines bestimmten Teils, welches von einem bestimmten Lieferanten geliefert wird und ich komme nicht darauf, wie man im SELECT-Bereich das Gesamtgewicht aller gelieferten Teile eines bestimmten Lieferanten ermitteln kann ???:L


```
SELECT lnr, lname, tname, SUM(gewicht*menge)
FROM l NATURAL JOIN ltp, t
WHERE ltp.tnr=t.tnr
GROUP BY lnr,lname,tname;
```






Vielen Dank für Eure Hilfe!

Gruß
Wang


----------



## Evil-Devil (9. Dez 2011)

Du könntest das entsprechende Gewicht in einem Subquery ermitteln und damit dann die Prozente errechnen lassen.


----------



## Wang (9. Dez 2011)

Evil-Devil hat gesagt.:


> Du könntest das entsprechende Gewicht in einem Subquery ermitteln und damit dann die Prozente errechnen lassen.



Wie kann ich aber den SELECT-Bereich so definieren, dass das Ergebnistupel so aussieht wie in der Aufgabenstellung?


----------



## Wang (9. Dez 2011)

(Lassen sich Beiträge nicht mehr ändern, oder übersehe ich im Moment total den Edit-Button?)

Ich habe jetzt zwar zusätzlich den Code, um das Gesamtgewicht aller Teile eines Lieferanten zu bekommen, schaffe es aber nicht, ihn mit meinem Code aus dem ersten Beitrag zu verknüpfen...


```
SELECT lnr, lname, SUM(gewicht*menge)
FROM l NATURAL JOIN ltp, t
WHERE ltp.tnr=t.tnr
GROUP BY lnr,lname;
```






Hat jemand eine Idee?


----------



## SlaterB (9. Dez 2011)

irgendwas in Richtung von
[sql]
SELECT abc.lnr, a.bc.lname, abc.tname, abc.s1/xyz.s2
FROM 
  (SELECT lnr, SUM(gewicht*menge) as s2
    FROM ltp, t
       WHERE ltp.tnr=t.tnr
      GROUP BY lnr) xyz,
  (SELECT lnr, lname, tname, SUM(gewicht*menge) as s1
    FROM l NATURAL JOIN ltp, t
       WHERE ltp.tnr=t.tnr
       GROUP BY lnr,lname,tname) abc
  where abc.lnr = xyz.lnr
[/sql]

du musst halt in deinen Lehrbüchern/ im Internet nachschlagen wie man Querys zusammenführt

How to write subquery in FROM clause

-------

es gibt auch

Example: Correlated subquery in select-list

dann könntest Richtung
[sql]
SELECT lnr, lname, tname, SUM(gewicht*menge)/ ( Select totale Summe where lnr = ..)
[/sql]
gehen


----------



## Wang (9. Dez 2011)

Vielen Dank Slater, jetzt habe ich es endlich geschafft (okay, Du hattest die Lösung im Grunde genommen ja auch schon gepostet gehabt). 

Schönes Wochenende!

Gruß
Wang


----------

