Simon15285
Neuer Benutzer
- Beiträge
- 2
Hallo zusammen,
vorweg, ich bin noch recht unerfahren auf dem Gebiet von MS SQL und damit verbundenen Datenbankabfragen. Von daher hoffe ich auf euer Verständnis, wenn hier und da meinerseits die Probleme nicht ganz so verständlich rüber kommen
Folgende Auswertung aus unser Datenbank würde ich gerne generieren:
Nach Möglichkeit soll mir für einen Zeitraum (Datum von xy bis Datum yz) jeweils der letzte Wareneingang eines Artikels angezeigt werden. Alle notwendigen Informationen liegen in einer Datenbanktabelle, es müssten also keine Tabellen miteinander verknüpft werden.
Mein Problem ist, dass ich die Abfrage nicht so geschrieben bekomme, dass ich je Artikel nur einen bzw. den letzten Wareneingang erhalte, da es u.U. in einem Zeitraum je Artikel mehrere Wareneingänge gibt.
Als eingrenzendes Merkmal zu den Wareneingängen würde ein Buchungsschlüssel fungieren, der ebenfalls als eigenes Feld in der Tabelle der Lagerbuchungen auswertbar ist.
Eventuell lässt sich folgende Abfrage so erweitern/umbauen, dass ich ans Ziele gelange (das Durchsuchen mehrerer Foren hat mich noch nicht wirklich weiter gebracht und nur fehlerhafte Ergebnisse oder Fehlermeldungen ergeben):
SELECT identnr as Teilenr, bestnr as Bestellnr, belegnummer as Rechnung, bu_dat as Datum, menge as Menge, epreis as Einkaufspreis
FROM l100
WHERE bus = '30' and bu_dat >= :+feld_v5 and bu_dat <= :+feld_b5
--die Felder feld_v5 und feld_b5 benötige ich, um im ERP-System das Datum per Eingabe eingrenzen zu können, der Buchungsschlüssel grenzt die Wareneingangsbuchungen ab
ORDER BY identnr
So erhalte ich für einen Zeitraum alle Buchungen, die unter dem Buchungsschlüssel '30' gebucht worden sind. Wie oben schon beschrieben wäre es mein Wunsch, je Artikel nur noch eine eindeutige Zeile zu bekommen.
Folgender Hinweis noch:
Es kann sein, dass ein Artikel an einem Tag zur gleichen Bestellung und Belegnummer mehrere Buchungspositionen aufweist, wenn mehrere einzelne Paletten eingebucht werden. Ich weiß nicht, ob das für die Abfrage relevant ist und u.U. zu Problemen führen könnte. Im Ergebnis ist es für mich nur wichtig, dass es nur noch eine Position je Artikel gibt, unabhängig, obs die Gesamtmenge oder Teilmenge widerspiegelt.
Ich hoffe, ich konnte das Problem einigermaßen verständlich und nachvollziehbar beschreiben. Falls ihr noch Fragen habt, versuche ich natürlich diese bestmöglich zu beantworten
Für eine Unterstützung wäre ich sehr dankbar!
Gruß
Simon
vorweg, ich bin noch recht unerfahren auf dem Gebiet von MS SQL und damit verbundenen Datenbankabfragen. Von daher hoffe ich auf euer Verständnis, wenn hier und da meinerseits die Probleme nicht ganz so verständlich rüber kommen
Folgende Auswertung aus unser Datenbank würde ich gerne generieren:
Nach Möglichkeit soll mir für einen Zeitraum (Datum von xy bis Datum yz) jeweils der letzte Wareneingang eines Artikels angezeigt werden. Alle notwendigen Informationen liegen in einer Datenbanktabelle, es müssten also keine Tabellen miteinander verknüpft werden.
Mein Problem ist, dass ich die Abfrage nicht so geschrieben bekomme, dass ich je Artikel nur einen bzw. den letzten Wareneingang erhalte, da es u.U. in einem Zeitraum je Artikel mehrere Wareneingänge gibt.
Als eingrenzendes Merkmal zu den Wareneingängen würde ein Buchungsschlüssel fungieren, der ebenfalls als eigenes Feld in der Tabelle der Lagerbuchungen auswertbar ist.
Eventuell lässt sich folgende Abfrage so erweitern/umbauen, dass ich ans Ziele gelange (das Durchsuchen mehrerer Foren hat mich noch nicht wirklich weiter gebracht und nur fehlerhafte Ergebnisse oder Fehlermeldungen ergeben):
SELECT identnr as Teilenr, bestnr as Bestellnr, belegnummer as Rechnung, bu_dat as Datum, menge as Menge, epreis as Einkaufspreis
FROM l100
WHERE bus = '30' and bu_dat >= :+feld_v5 and bu_dat <= :+feld_b5
--die Felder feld_v5 und feld_b5 benötige ich, um im ERP-System das Datum per Eingabe eingrenzen zu können, der Buchungsschlüssel grenzt die Wareneingangsbuchungen ab
ORDER BY identnr
So erhalte ich für einen Zeitraum alle Buchungen, die unter dem Buchungsschlüssel '30' gebucht worden sind. Wie oben schon beschrieben wäre es mein Wunsch, je Artikel nur noch eine eindeutige Zeile zu bekommen.
Folgender Hinweis noch:
Es kann sein, dass ein Artikel an einem Tag zur gleichen Bestellung und Belegnummer mehrere Buchungspositionen aufweist, wenn mehrere einzelne Paletten eingebucht werden. Ich weiß nicht, ob das für die Abfrage relevant ist und u.U. zu Problemen führen könnte. Im Ergebnis ist es für mich nur wichtig, dass es nur noch eine Position je Artikel gibt, unabhängig, obs die Gesamtmenge oder Teilmenge widerspiegelt.
Ich hoffe, ich konnte das Problem einigermaßen verständlich und nachvollziehbar beschreiben. Falls ihr noch Fragen habt, versuche ich natürlich diese bestmöglich zu beantworten
Für eine Unterstützung wäre ich sehr dankbar!
Gruß
Simon