Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Abfrage

Begonnen von Manne31, Mai 06, 2017, 13:13:24

⏪ vorheriges - nächstes ⏩

Manne31

Ich habe eine Tabelle Verkauf mit den Felder Datum des Verkauftstags und der verkaufte Menge.
Jetzt möchte ich in einer Abfrage die Menge für den Aktuellen Tag haben
und wenn nicht Verkauft wurde soll als Menge 0 Stück im Feld Menge stehen

steffen0815

#1
Hallo,
eine VarianteSELECT Artikel, Nz(DSum("Menge","DeineTabelle","VerkDatum=date() and Artikel='" & [artikel] & "'"),0) AS Menge
FROM DeineTabelle
GROUP BY Artikel;


Alternativ SELECT DISTINCT t1.Artikel,
                Nz([Verk],0) AS HeuteVerk
FROM DeineTabelle AS t1
LEFT JOIN
  (SELECT Sum(Menge) AS Verk,
          artikel
   FROM DeineTabelle
   WHERE VerkDatum=Date()
   GROUP BY artikel) AS t2 ON t1.artikel = t2.artikel;

Das Ganze dürfte bei größerer Datenmenge recht zäh werden.
Im Normalfall sollte es doch eine Artikeltabelle mit allen Artikeln geben.
Gruß Steffen

Manne31

Zitat von: Manne31 am Mai 06, 2017, 13:13:24
Ich habe eine Tabelle Verkauf mit den Felder Datum des Verkauftstags und der verkaufte Menge.
Jetzt möchte ich in einer Abfrage die Menge für den Aktuellen Tag haben
und wenn nicht Verkauft wurde soll als Menge 0 Stück im Feld Menge stehen


Manne31

Jetzt habe ich aber noch eine Frage wie kann man die Abfrage so um
Scheiben das auch das Datum und die Verkaufte Menge für den Aktuellen
Monat, und das Aktuelle Jahr, sowie für das gleiche für ein Tag, Monat- sowie ein Jahr zurück

Für deine Hilfe Danke Ich jetzt schon im Voraus

steffen0815

Hallo,
hast du das Umschreiben mal selbst versucht?
Gestriger Tag: VerkDatum=Date()-1
Aktuelles Jahr: year(VerkDatum)=year(date())
Monat:format(VerkDatum,"yyyymm")= format(date(),"yyyymm")
Gruß Steffen

Manne31

Hallo Steffen,
erst mal einen großen Dank für deine Hilfe,
ja aber nicht ganz so wie du es mir jetzt geschrieben hast
Noch mal danke

Manne31

Manne31

Hallo Steffen 0815, :)
Noch mal eine Frge zum Datum Monat miuns ein Jahr,
das bekomme ich nich hin

Gruß
Manne31 ;) ;)

MzKlMu

Hallo,
"geht nicht, kriege ich nicht hin, funktioniert nicht" sind alles Aussagen die ohne weitere Erklärungen nutzlos sind.

Du musst schon genau beschreiben und ggf. zeigen was Du gemacht hast.
Auch eventuelle Fehlermeldungen sollten im Wortlaut zitiert werden.
Gruß Klaus

steffen0815

Hallo,
mit Datum rechnen geht am Besten mit DateAdd,
Zitat von: Direktfenster?dateadd("m",-1,date())
07.04.2017
?dateadd("yyyy",-1,date())
07.05.2016
Gruß Steffen

Manne31

Hallo MzKIMu Klaus,

Ich habe wie gesagt eine Tabelle mit den Feldern

feld1 Datum verkauft
feld2 Menge
feld3 Artikel

Es sollte im Feld menge immer die Verkaufte Menge nach dem Datum
vom Verkauf stehen  und das auch immer ein Jahr zurück
Nach Tag -1Jahr Verkauft am 01.05.2017 und Verkauft 01.05.2016
Monat -1Jahr Summe vom Verkauft von Monat 2017 und 2016
Jahr-ein Jahr Summe Verkauf im Aktuelle Jahr und im Jahr2016
aber so das im Jahr 2018 nur die Menge vom Aktuellen Jahr und aus dem vo Jahr dort stehen in Menge

Ich hoffe so ist es Ausreichen beschrieben

Gruß
Manne31

Manne31

Hallo Steffen0815 :) :)

Und wie baue ich das in die Abfrage ein
die du mir ja schon erstellt hast

Bis dann
manne3105


Manne31

Hallo Steffen0815 und an alle anderen

hier mal meine Abfrage

SELECT DISTINCT t1.ventpoMAVentilIDRef, Nz([Verk],0) AS HeuteVerk
FROM tblVentilpostionen AS t1 LEFT JOIN (SELECT Sum(ventpoMenge) AS Verk, ventpoMAVentilIDRef FROM tblVentilpostionen WHERE format(ventpoDatum,"yyyymm")=format(date(),"yyyymm") GROUP BY ventpoMAVentilIDRef)  AS t2 ON t1.ventpoMAVentilIDRef = t2.ventpoMAVentilIDRef
WHERE (((t1.ventpoMAVentilIDRef)=3));
und nun sollte die Summe der Menge für dem Monat aus dem
vor Jahr in Menge stehen

bis an an Alle

manne3105

steffen0815

#12
Hallo,
das ist deine Bedingung für den aktuellen MonatWHERE format(ventpoDatum, "yyyymm") = format(DATE(), "yyyymm")

(Der Monat vor) einem Jahr wird so berechnet:dateadd("yyyy",-1,date())

Also sollte das so aussehen:WHERE format(ventpoDatum , "yyyymm") = format(  dateadd("yyyy",-1,date())  , "yyyymm")
Gruß Steffen

Manne31

Guter Steffen0815
Jetzt ist alles perfekt und noch mal vielen Dank
für deine Große Hilfe
bis Bald einmal
Gruß manne3105


Manne31

Hallo Steffen 0815
Jetzt breche ich zusammen da wenn in der Datenbank in der Tabelle noch keine
Daten vorhanden sind ist das Formular Blind und es werden mir keine Daten mit
dem Datum und der Menge mit 0 angezeigt
Die erstellten Abfrage sind in Ordnung die hast Du ja für mich hin bekommen nach
dem ich mich ja schon 14 Tage lang damit Beschäftigt habe!
Was ist jetzt noch falsch?

Manne3105