2016-07-31 3 views
0

Ich muss zwei Spaltenwerte subtrahieren und die Ausgabespalte in Select Query anzeigen.Subtrahieren Sie zwei numerische Spaltenwerte in der Oracle-Abfrage

SELECT c.name, 
    (SELECT SUM(p.qty*s.price) 
    FROM stock s, purchase p 
    WHERE s.company = p.company 
    GROUP BY p.company) 
MINUS 
    (SELECT SUM(p.price*p.qty) 
    FROM stock s, purchase p 
    WHERE s.company = p.company 
    GROUP BY p.company) AS "Profit/Lost" 
FROM purchase p, client c, stock s 
WHERE s.company = p.company 
    AND c.clno = p.clno 
GROUP BY p.company; 

Aber es wird ein Fehler angezeigt. Wie löst man?

+3

Es gibt so viele Probleme mit Ihrer Abfrage, dass es keinen Platz zu beginnen gibt. Sie sollten Beispieldaten und gewünschte Ergebnisse bereitstellen. –

+1

Sie verwirren, was 'Minus' tut; es entfernt Gruppen von Zeilen; klingt wie Sie brauchen nur ein arithmetisches '-' für die beiden Spalten. Aber Gordon hat recht; Wir brauchen Probendaten und Proben gewünschte Ausgabe. –

Antwort

2

Erste Unterabfrage benötigt einen Alias.

aber warum Subquery überhaupt verwenden? Ist das was du willst?

SELECT c.name, p.company, 
    SUM(p.qty*s.price) - SUM(p.price*p.qty) roe 
FROM client c 
    join purchase p on p.clno = c.clno 
    join stock s on s.company = p.company 
GROUP BY c.name, p.company; 
+0

Danke. Etwas Ähnliches. –

Verwandte Themen