Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

den jeweils letzen Datensatz per Artikel

Begonnen von raiwo, November 16, 2015, 17:32:45

⏪ vorheriges - nächstes ⏩

raiwo

Hallo habe heute von unserem Steuerberater die Aufgabe bekommen eine Inventur zum 30-09 zu machen. Ein Lösungsansatz wäre aus dem Warenbewegungsbuch den jeweils letzten Satz per Artikel vor dem 30-09 rauszufinden.

Hat da jemand eine Idee ?

el_gomero

Hallo,

worin liegt dein Problem? Und ohne vernünftige Beschreibung des Datenmodells und der Tabellen wird ohnehin kaum jemand helfen können.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

raiwo

Habe derzeit eine Tabelle mit jetzt nur noch 5 Spalten.
Artikelnummer/Datum/Lager Nr/ Bestand

ich benötige die jeweils letzte Buchung jeden  Artikels  per Lager

Vielen Dank Rainer

el_gomero

Zitat
Habe derzeit eine Tabelle mit jetzt nur noch 5 Spalten.
Artikelnummer/Datum/Lager Nr/ Bestand

Access kennt keine Spalten, nur Felder - und deren sind es nach deiner Auflistung 4. Hast du was unterschlagen? Datum ist als Bezeichner ungeeignet und sollte schleunigst umbenannt werden, zb in Bewegungsdatum. Leerzeichen wie in Lager Nr sind ebenfalls zu vermeiden - verwende hier Lager_Nr.

Nun könnte es doch aber sein, dass ein Artikel mit gleichem Lager am gleichen Tag mehrere Buchungen hat - wie willst du da den letzten finden? Gibt es eine ID an der man das fest machen kann?
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

raiwo

Hallo Jürgen

Uhrzeit   mit folgender Formatierung:16.11.2015 09:14:30

Die anderen Felder sind natürlich mit _ versehen. entschuldige

ebs17

SELECT
   E.*
FROM
   EineTabelle AS E
      INNER JOIN
         (
            SELECT
               Artikelnummer,
               MAX(Datum) AS MaxDatum
            FROM
               EineTabelle
            WHERE
               Datum < #2015-10-01#
         ) AS Q
         ON E.Artikelnummer = Q.Artikelnummer
            AND
         E.Datum = Q.MaxDatum
Mit freundlichem Glück Auf!

Eberhard

el_gomero

Moin,

also das Statement von Eberhard hat bei mir im Test nicht funktioniert ( In der Abfrage ist der angegebene Ausdruck "Artikelnummer" nicht als Bestandteil der Aggregatfunktion enthalten ).

Funktionieren würde

SELECT
   E.*
FROM
   EineTabelle AS E
      INNER JOIN
         (SELECT Artikelnummer, Max(Datum) AS MaxDatum
          FROM EineTabelle
          GROUP BY Artikelnummer, [Datum]
          HAVING (((EineTabelle.[Datum])<#10/1/2015#))
         ) AS Q
         ON E.Artikelnummer = Q.Artikelnummer
            AND
         E.Datum = Q.MaxDatum


wobei noch die Lager_Nr berücksichtigt werden sollte. Da weiss ich im Moment aber auch nicht das richtige Statement.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

DF6GL

#7
Hallo,

das Feld halt noch mit aufnehmen..



SELECT
   E.*
FROM
   EineTabelle AS E
      INNER JOIN
         (SELECT Artikelnummer, Lager_Nr,  Max(Datum) AS MaxDatum
          FROM EineTabelle
          Where [Datum]<#10/1/2015#
          GROUP BY Artikelnummer, Lager_Nr ,[Datum]
         
         ) AS Q
         ON E.Artikelnummer = Q.Artikelnummer
            AND
         E.Datum = Q.MaxDatum
            And
         E.Lager_Nr = Q.Lager_Nr


wobei ich jetzt nicht nachvollziehen kann, warum nach Datum gruppiert werden soll
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

el_gomero

tja, der Franz hat's verraten ;) ... mal sehen ob sich der TE nochmal meldet ...
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

raiwo

#9
Melden.... der ist am testen wie verrückt.

Also ich bin ja ein wenig unbedarft was Access angeht und versuche gerade den SQL Datensatz in einer Abfrage umzusetzen... nicht so ganz einfach, verfluche mich schon das ich nicht in der Anfrage die korrekten Bezeichner eingesetzt habe. Ist aber immer wieder faszinierend was alles mit Access machbar ist.
Vielen Dank Euch beiden.

Rainer

raiwo

Scheint mir jetzt als wenn er einen Datensatz aus jedem Buchungstag erzeugt.

hier die Abfrage:
SELECT E.*
FROM abfrage2 AS E INNER JOIN (SELECT Artikelnummer, Lg_Nr_BUCHUNG, Max(WBW_DATUM) AS MaxDatum FROM abfrage2 WHERE [WBW_Datum]<#10/1/2015# GROUP BY Artikelnummer, Lg_Nr_BUCHUNG, [WBW_Datum])  AS Q ON (E.Artikelnummer = Q.Artikelnummer) AND (E.WBW_Datum = Q.MaxDatum) AND (E.Lg_Nr_BUCHUNG = Q.Lg_Nr_BUCHUNG);

DF6GL

Hallo,

hatte ich "[WBW_Datum]"   ("[Datum]")  nicht ausgestrichen?
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access

raiwo


raiwo

Wie kann man das denn Programmieren ? gibt es da eine Tastenkombination?

DF6GL

Hallo,

das ist kein "Programm"(-Code) , sondern ein SQL-Statement, das heißt, es ist eine Abfrage.

Die SQL-Statements einer Abfrage findest Du im  Abfrage-Entwurf unter SQL-Ansicht.

Allerdings bedingt das Zusammenstellen der o. g. Abfrage etwas tiefere SQL-Kenntnisse und kann auch nicht direkt im Abfrage-Entwurf zusammengeklickt werden, allenfalls über mehrere Zwischenschritte.
Viele Grüße vom Bodensee
Franz, DF6GL

Hilfestellung:  http://www.access-o-mania.de/forum/index.php?topic=6969.msg118738#msg118738

Links und Tipps:
1.   http://v.hdm-stuttgart.de/~riekert/lehre/db-kelz/
1a. http://www.tinohempel.de/info/info/datenbank/normalisierung.htm
1b. https://support.office.com/de-de/article/Grundlagen-des-Datenbankentwurfs-eb2159cf-1e30-401a-8084-bd4f9c9ca1f5#bmterms
2.   http://www.donkarl.com
3.   https://web.archive.org/web/20201201233522/http://www.dbwiki.net/
4.   http://www.access-tutorial.de/
5.   http://www.tty1.net/smart-questions_de.htm
6.   http://access.joposol.com/accept

Last but not least:   < F1 > für Hilfe
;) Learning by doing not by spoon-feed ;)

Tipp: Find and Replace for Access