SQL Wert vergleichen mit Summe

Testsql457

Neuer Benutzer
Beiträge
4
Brauche Hilfe bei folgender SQL-Abfrage:

es sollen nur die Zeilen angezeigt werden, bei denen die Summe kleiner ist als k.Menge

SELECT ka.AUFTRAG, k.AUFPOS, k. MENGE , SUM(CASE WHEN p.STATUS_QS IN('','F') THEN p.MENGE_GES ELSE 0 END) As Sum_Menge
FROM KAVV000 AS ka
LEFT OUTER JOIN PRMD000 AS p ON ka. AUFTRAG = p.AUFTRAG
RIGHT OUTER JOIN KAVV0101 AS k ON ka.AUFTRAG = k.AUFTRAG
INNER JOIN MATD010 AS m ON p.ARTIKEL = m.ARTIKEL
WHERE ka.GESCH_BER NOT LIKE '9%'
AND m.MERKMALGRP = 'GUSSTEIL'
AND p.AUFPOS = k.AUFPOS
AND p.STRU_EBENE = 1
AND p.FK_STKL = 'F'
GROUP BY ka.AUFTRAG, k.AUFPOS, K.MENGE, p.MENGE_GES
HAVING k.MENGE <> Sum_Menge

Ich bekomme hier immer die Fehlermeldung, dass die Spalte Sum_Menge nicht existiert.
Wie kann ich eine Menge mit einer bestimmten Summe von p.Menge_GES vergleichen ? Hat jemand eine Idee ?
 
Werbung:
Code:
SELECT * FROM
  (SELECT ka.AUFTRAG, k.AUFPOS, k. MENGE , SUM(CASE WHEN p.STATUS_QS IN('','F') THEN p.MENGE_GES ELSE 0 END) As Sum_Menge
  FROM KAVV000 AS ka
  LEFT OUTER JOIN PRMD000 AS p ON ka. AUFTRAG = p.AUFTRAG
  RIGHT OUTER JOIN KAVV0101 AS k ON ka.AUFTRAG = k.AUFTRAG
  INNER JOIN MATD010 AS m ON p.ARTIKEL = m.ARTIKEL
  WHERE ka.GESCH_BER NOT LIKE '9%'
  AND m.MERKMALGRP = 'GUSSTEIL'
  AND p.AUFPOS = k.AUFPOS
  AND p.STRU_EBENE = 1
  AND p.FK_STKL = 'F'
  GROUP BY ka.AUFTRAG, k.AUFPOS, K.MENGE, p.MENGE_GES)
  WHERE menge<>sum_menge
 
Ohne mir das jetzt groß angeguckt zu haben, hast du mal deinen Alias Sum_Menge durch die eigentliche CASE-Anweisung ersetzt?
Code:
SUM(CASE WHEN p.STATUS_QS IN('','F') THEN p.MENGE_GES ELSE 0 END)
Das ist ja eigentlich die Spalte auf die sich dein HAVING bezieht.
 
Werbung:
Zurück
Oben