Täglich grüßt das Murmeltier ::)
Ich habe ein Foto hinzugefügt für eine bessere Beschreibung meines Problems.
In dieser Abfrage sollen alle Bauteile aufgezählt werden deren Menge <=1 sind. Soweit klappt auch alles. Ich würde das gerne flexibler gestalten indem ich das äbhänging machen möchte, mit dem Bauteil Feld -> "Min"
Jedes Bauteil hat eine unterschiedliche Anzahl von "Min" ,was im Lager sein soll. Als Beispiel das Bauteil mit der ID:1 hat einen Min von 8. Dann sollte es aufgelistet werden wenn die 8 erreicht ist oder sogar weniger als 8 besteht. <=8
Wie kann ich das umsetzten das es klappt? Was müsste ich bei den Kriterien einsetzten dafür ?
Danke
Hallo,
<=[Min]
Bekomme eine Fehlermeldung, beim Öffnen der Abfrage:
Zitat
In der Abfrage ist der angegebene Ausdruck"Sum([Multiplikator]*[menge]) <=[Min]" nicht als Bestandteil einer Aggregatfunktion enthalten.
Muss ich das <=[Min] nicht in verbindung bringen mit der Summe vom Eintrag oben im Feld ?
Hallo,
poste mal den SQL-String der Abfrage....
SELECT Bauteile.ID_Bauteil, Bauteile.Hersteller_Nr_1, Bauteile.Hersteller_Nr_2, Bauteile.Beschreibung
FROM Bauteile INNER JOIN (Vorgangsarten INNER JOIN Vorgaenge ON Vorgangsarten.ID_Vorgangsart = Vorgaenge.ID_Vorgangsart_F) ON Bauteile.ID_Bauteil = Vorgaenge.ID_Bauteil_F
GROUP BY Bauteile.ID_Bauteil, Bauteile.Hersteller_Nr_1, Bauteile.Hersteller_Nr_2, Bauteile.Beschreibung
HAVING (((Sum([Multiplikator]*[menge]))<=1));
Hallo,
das ist nicht der SQL-String, der den erwähnten Fehler verursacht....
Wenn ich bei Kriterien
<=[Min] einfüge und anschliessend die Abfrage erneut aufrufen möchte, erscheind genau dieser Fehler.
ZitatIn der Abfrage ist der angegebene Ausdruck"Sum([Multiplikator]*[menge]) <=[Min]" nicht als Bestandteil einer Aggregatfunktion enthalten.
Das ist der SQL-Code von der endsprechende Abfrage.
SELECT Bauteile.ID_Bauteil, Bauteile.Hersteller_Nr_1, Bauteile.Hersteller_Nr_2, Bauteile.Beschreibung, Sum([Multiplikator]*[menge]) AS Bestand
FROM Bauteile INNER JOIN (Vorgangsarten INNER JOIN Vorgaenge ON Vorgangsarten.ID_Vorgangsart = Vorgaenge.ID_Vorgangsart_F) ON Bauteile.ID_Bauteil = Vorgaenge.ID_Bauteil_F
GROUP BY Bauteile.ID_Bauteil, Bauteile.Hersteller_Nr_1, Bauteile.Hersteller_Nr_2, Bauteile.Beschreibung
HAVING (((Sum([Multiplikator]*[menge]))<=[Min]));Sonst wüsste ich nicht , wo der Fehler sonst kommen sollte. DB habe ich im hinzugefügt als Link.
http://www.legion-der-finsternis.de/Lager.mdb (http://www.legion-der-finsternis.de/Lager.mdb)
Hi,
du kannst in einer gruppierten Abfrage nicht euf ein Datenfeld zugreifen, das nicht in der Gruppierung enthalten ist. Welcher Min-Wert sollte da wohl genommen werden?
PS:
Ein paar Testdaten hätte die DB ruhig enthalten dürfen.
ZitatPS:
Ein paar Testdaten hätte die DB ruhig enthalten dürfen.
Endschuldigung, hast natürlich Recht. Habe auch eine Leere DB hochgeladen davon. Hab die Datei überschrieben mit paar Beispielen. Sry , nochmal :-[
Sollte der Min-Wert von der Tabelle : Bauteile genommen werden.
Hallo,
ZitatWelcher Min-Wert sollte da wohl genommen werden?
Es gibt nur einen in einer Gruppe, derweil nach Bauteil_ID gruppiert wird....
SELECT Bauteile.ID_Bauteil, Bauteile.Hersteller_Nr_1, Bauteile.Hersteller_Nr_2, Bauteile.Beschreibung, Sum([Multiplikator]*[menge]) AS Bestand, Bauteile.Min
FROM Bauteile INNER JOIN (Vorgangsarten INNER JOIN Vorgaenge ON Vorgangsarten.ID_Vorgangsart = Vorgaenge.ID_Vorgangsart_F) ON Bauteile.ID_Bauteil = Vorgaenge.ID_Bauteil_F
GROUP BY Bauteile.ID_Bauteil, Bauteile.Hersteller_Nr_1, Bauteile.Hersteller_Nr_2, Bauteile.Beschreibung, Bauteile.Min
HAVING (((Sum([Multiplikator]*[menge]))<=[Min]));
Danke für die schnelle Hilfe