Hallo Ladys and Gentlemen,
ich habe folgende Abfrage:
SELECT abf.VerAE_TSIDRef, abf.VerAE_KdIDRef, abf.VerAE_LOIDRef, abf.VerAE_Artikel, abf.BestAenderung, abf.LfdSaldo, abf.PreisProTag, abf.AenderungsDatum, DateDiff("d",[Aenderungsdatum],(Select top 1 T.Aenderungsdatum From abf_Summen as T Where
T.VerAE_Artikel = abf.VerAE_Artikel and abf.Aenderungsdatum<T.Aenderungsdatum)) AS AnzTage
FROM abf_Summen AS abf
ORDER BY abf.VerAE_Artikel, abf.AenderungsDatum;
Nun mein Problem:
Ich gebe einen sog. Abrechnungszeitraum vor (z.B. 01.05.2016 bis 15.06.2016).
Ich benötige eine Zahl, die fortlaufend die Bestandsänderung eines jeden Artikels im Abrechnungszeitraum durchnummeriert, beginnend mit "1".
Wurde der Artikelbestand im Abrechnungszeitraum nicht verändert, soll dort eine "0" erscheinen.
Ich bedanke mich im Voraus für eure Hilfe.
Und da steht zur Zeit nichts (Null)? Wenn ja, kann man vermutlich ein Nz(..., 0) um die Unterabfrage legen.
Genau, das Feld ist zurzeit leer.
Die Null-Abfrage krieg ich natürlich hin.
Leider ist mein Problem damit noch nicht gelöst.
Ich wäre sehr dankbar, wenn sich jemand meinem Problem annimmt.
Man könnte erwarten, dass Du den Lösungsversuch zeigen würdest und mitteiltest, was nicht erwartungsgemäß eintritt.
Vermutlich ist die Hürde für potentielle Helfer auch etwas geringer, wenn einige Spieldaten als Text (möglichst importgerecht) vorlägen. :)
Hallo,
ich möchte in dieser Abfrage in einer Spalte die lfd Nummer berechnen lassen, die angibt, wie oft ein Artikel im Abrechnungszeitraum ( BegDat EndDat) verändert wurde.
VerAE_Artikel AenderungsDatum BegDat EndDat Nummer
Hüftsteak13 19.03.2016 01.05.2016 31.05.2016 0
Hüftsteak13 19.04.2016 01.05.2016 31.05.2016 0
Hüftsteak13 09.05.2016 01.05.2016 31.05.2016 1
Hüftsteak13 20.05.2016 01.05.2016 31.05.2016 2
Hüftsteak13 29.06.2016 01.05.2016 31.05.2016 0
Karbonade32 08.07.2016 01.05.2016 31.05.2016 0
Lachse12 08.05.2016 01.05.2016 31.05.2016 1
Lachse13 02.05.2016 01.05.2016 31.05.2016 1
Lachse13 08.05.2016 01.05.2016 31.05.2016 2
Lachse13 06.06.2016 01.05.2016 31.05.2016 0
Lachse33 08.07.2016 01.05.2016 31.05.2016 0
Schnitzel13 27.06.2016 01.05.2016 31.05.2016 0
Schnitzel13 08.07.2016 01.05.2016 31.05.2016 0
Schweinefilet12 03.05.2016 01.05.2016 31.05.2016 1
Schweinefilet13 03.05.2016 01.05.2016 31.05.2016 1
Schweinefilet13 29.06.2016 01.05.2016 31.05.2016 0
Schweinefilet33 03.05.2016 01.05.2016 31.05.2016 1
Ich weiß nicht, wie ich es sonst besser darlegen kann...
Hallo,
zeig doch bitte auch noch den SQL-Code der Abfrage dazu.
...oder versuche es mal hiermit:Select VerAE_Artikel, AenderungsDatum, BegDat, EndDat, IIf(AenderungsDatum Between BegDat AND EndDat,
DCount("*","tabelle","VerAE_Artikel='" & VerAE_Artikel & "' AND AenderungsDatum <" & Format([AenderungsDatum],"\#yyyy\/mm\/dd\#"))+1, 0) AS lfdNr
From tabelle
Eine Textdatei im Anhang wäre die bevorzugte Art gewesen. :)
Ich habe die Tabelle data getauft und nur die ersten beiden Felder verwendet, die ich in A und D umbenannt habe. Weiterhin habe ich einen eindeutigen Mehrfachindex über (A, D) und einen einfachen Index auf D gelegt. Start und Ende sind als Parameter ausgelegt.
PARAMETERS [@Start] DateTime,
[@Ende] DateTime;
SELECT d0.A,
d0.D,
(SELECT Count(*) FROM data
WHERE A = d0.A
AND D Between [@Start] AND [@Ende]
AND d0.D Between [@Start] AND [@Ende]
AND D <= d0.D) AS N
FROM data AS d0;
Ergebnis:A D N
Hüftsteak13 19.03.2016 0
Hüftsteak13 19.04.2016 0
Hüftsteak13 09.05.2016 1
Hüftsteak13 20.05.2016 2
Hüftsteak13 29.06.2016 0
Karbonade32 08.07.2016 0
Lachse12 08.05.2016 1
Lachse13 02.05.2016 1
Lachse13 08.05.2016 2
Lachse13 06.06.2016 0
Lachse33 08.07.2016 0
Schnitzel13 27.06.2016 0
Schnitzel13 08.07.2016 0
Schweinefilet12 03.05.2016 1
Schweinefilet13 03.05.2016 1
Schweinefilet13 29.06.2016 0
Schweinefilet33 03.05.2016 1
So meine lieben Freunde -wenn ich das sagen darf!
Eure Tipps waren großartig...
Nur ich musste meine gesamte DB nochmal von vorne aufbauen, um zu verstehen was ihr meint.
Jetzt hab ich alles geschafft, und immerhin fast die Hälfte kapiert!
Nochmals vielen Dank an euch Gurus. :)
Ihr dürft euch schon mal darauf einstellen, - irgendwann bin ich wieder da.