[SQL] Falsches Group by?

Dorni

New member
12 Juni 2006
4
0
Hallo ich habe eine Tabelle in der Unteranderem die Attribute Belegnummer, Belegtyp, NettoEuro enthalten sind.

Zu den Belegnummern gibt es mehrere Datensätze.

Nun brauch ich eine Ausgabe in der Steht wieviele Belege es gibt in dem der Gesamt Betrag unter 1000€ ist.

Hier mein ansatz:

select Count(*) from BELEGP Where NettoEuro < '1000' AND Belegtyp = 'R' Group by Belegnummer

leider werden dort sehr viele Datensätze ausgegeben und ich brauch einfach nur die Anzahl.
 
dann bekomm ich die anzahl der Belegpositionen mit NettoEuro unter 1000€
brauche aber die Anzahl der Rechnungen unter 1000€
Viele Belegpositionen mit gleicher Belegnummer = eine rechnung
 
Dorni schrieb:
Nun brauch ich eine Ausgabe in der Steht wieviele Belege es gibt in dem der Gesamt Betrag unter 1000€ ist.
Der Gesamtbetrag der Rechnung ? :think:

Wenn, dann müsstest du erst einmal gruppieren (wie du schon hast) und die Summe der Rechnung ausgeben lassen.
Dieses Tabelle müsstest du abzählen, bzw. subSELECTen.

Korrigiert mich, wenn n Denkfehler drin is.
 
theHacker ich kann mir ungefähr vorstellen was du meinst aber leider nicht wie es funktioniert kannst mir vielleicht nen tipp geben hab noch nie mit subselects gearbeitet :(
 
Das riecht extrem nach der Warenwirtschaft von SelectLine.

Du benutzt aber nicht die integrierte SQL-Funktion, oder?
 
Code:
SELECT COUNT(*) FROM `BELEGP` WHERE `Belegtyp` = 'R' GROUP BY `Belegnummer` HAVING SUM(`NettoEuro`) < 1000
ungetestet
 
burnred schrieb:
Code:
SELECT COUNT(*) FROM `BELEGP` WHERE `Belegtyp` = 'R' GROUP BY `Belegnummer` HAVING SUM(`NettoEuro`) < 1000
ungetestet

wird nix... da bekommste auch nur einzelne datensätze. in dem fall steht in jedem datensatz wieviele position auf der rechnung waren...
 
lass einfach das group by weg und nutze distinct..

SELECT COUNT(DISTINCT(belegnummer)) FROM bla WHERE xyz

(ohne das db schema zu kennen, kann man da eh net helfen..)