![]() |
AW: DATEDIFF ohne Wochenenden
Delphi-Quellcode:
Query.SQL.Text := 'Select P.status, P.kd, P.rn, P.rechnung_datum, P.preis_netto, P.verzug_status, P.rechnung_start_datum, '+
'K.firmenname, K.land, K.firma_intern, K.anmerkung, '+ 'FROM '+DB_KUNDENDATEN+' AS K, '+DB_POSITIONEN+' AS P '+ 'WHERE (K.kd = P.kd) '+ 'AND (P.rechnung_start_datum < now()) '+ 'AND (DATEDIFF(now(), P.rechnung_start_datum) > 26) // Wochentage werden noch dazu gerechnet |
AW: DATEDIFF ohne Wochenenden
Code:
Aber noch besser ist es, eine Spalte 'workingDayCount' in der Datum-Tabelle einzufügen. Der erste Arbeitstag der Tabelle ist 0, der zweite ist 1 usw. Bei Wochenenden wird nicht hochgezählt.
Select ...
AND (select sum(IIF(WeekEnd='weekday',1,0)) from datum dt where dt.Date between p.rechung_start_datum and now() ) > 26 Dann wird das noch schneller, weil Du dann nur noch ein Join brauchst (und eine Variable)
Code:
Bei der Syntax bin ich mir nicht sicher, denn ich kann kein mySQL.
select WorkingDayCount into :WorkingDayCount from Datum dt where dr.Date=now()
select .... join Datum dt on dt.Date = p.rechnung_start_datum ... where ... and dt.WorkingDayCount <= :WorkingDayCount - 26 |
AW: DATEDIFF ohne Wochenenden
Dejan Vu Klasse es funktioniert. Danke hab ich etwas dazu gelernt und bin für das nächste mal mit der Tabelle gewappnet.
Das mit den IF Anweisungen in der Abfrage muss ich mir auch mal genauer ansehen, hab das vorher noch nie gehabt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz