verwendetes Datenbanksystem: <MySQL, MyISAM>
Moin,
ich werwende für die Ermittlung des höchsten Wertes innerhalb eines Monats (wird am Anfang jedes Monats auf 1 gesetzt) folgenden einfachen Query:
SELECT MAX(`LfdNr`) FROM `Rechnungen` WHERE YEAR(`Belegdatum`) = XXXX AND MONTH(`Belegdatum`) = XX
Diese Abfrage klappt auch für den Juli.
Nur im August wurde der MAX nur bis 9 abgezeigt, die 10 (mittlw. schon mehrfach) nicht mehr. Auch die 11, per Hand eingetragen wird nicht gewertet.
Update: Zahlenwerte jetzt von 2-19
Wenn ich:
SELECT * FROM Rechnungen
WHERE MONTH(Belegdatum
) = 8
eingebe erhalte ich eine korrekte Antwort (18 Einträge, 2-19), mit Max(LFDNR) nur die 9
Habe nicht den geringsten Schimmer was da falsch ist...
Danke im Vorraus
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein
Was ist LfdNr für nen Typ?
Riecht fischig...
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
varchar(45) - Facepalm...
aber wenn dass das Problem ist warum wurde im Juli richtig ermittelt?
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein
Bin mir nicht 100% sicher, was Du meinst.
Aber im Falle von varchar ist das Verhalten, das Du hier beschreibst, absolut korrekt.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Lass dir das Feld sortiert ausgeben, vielleicht erkennst du dann was da wie drin stand und warum es im Juli geklappt hat.
Habe in INT umgewandelt und funzt
...Wald vor lauter Bäumen nicht gesehen...
"Man muß die Dinge so einfach wie möglich machen. Aber nicht einfacher." Albert Einstein
Hi,
mal ne doofe Frage wieso verwendest du nicht einfach als Datentyp fürs Datum Date
@Soier
Meinst wohl Timestamp.
Wäre auch für ein Belegdatum Feld in der DB sinnvoller als ein int oder andere Lösungen, die dann sont wie interpretiert werden müssen.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.
Denkt dran, dass man für Datumswerte in Datenbanken die .NET DateTimeOffset Klasse verwendet und nicht DateTime!
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code