![]() |
Datenbank: Firbird • Version: 2,5,5 • Zugriff über: IBO / IBExpert
Summe der Tage zwischen 2 Datums
Hallo,
ich habe eine Tabelle mit vielen Tagen. Ein Datum kann mehrfach vorkommen. Nun möchte ich per SQL ermitteln wieviel Tage im Jahr ich gearbeitet habe. Mein Ansatz war so:
Delphi-Quellcode:
Das Ergebnis sieht so aus:
Select count(R.behandlungsdatum) as Summe , R.behandlungsdatum from tbl_rechnungspositionen R where R.behandlungsdatum between '01.01.2016' and '31.12.2016'
group by R.behandlungsdatum usw.
Ich möchte aber nur eine Zahl die besagt wieviel Tage ist im Jahr gearbeitet worden. Hat jemand eine Idee? |
AW: Summe der Tage zwischen 2 Datums
Die Anzahl Tage zwischen 2 Datumswerten kann man mit DateDiff ermitteln
![]() |
AW: Summe der Tage zwischen 2 Datums
Ich will aber nicht die Anzahl der Tage zwischen 2 Datumswerten sondern die Anzahl der Tage an denen gearbeitet wurde als eine Zahl.
In Meinen Beispiel ist es eine 2. |
AW: Summe der Tage zwischen 2 Datums
.. und gearbeitet wurde wenn ein Eintrag in der Spalte "BehandlungsDatum" eingetragen wurde?
Sollte da nicht dann auch ein "select count(*)..." ausreichend sein? Grüße Klaus |
AW: Summe der Tage zwischen 2 Datums
Code:
Sollte doch funktionieren?
Select count(distinct R.behandlungsdatum) as Summe from tbl_rechnungspositionen R where R.behandlungsdatum between '01.01.2016' and '31.12.2016'
|
AW: Summe der Tage zwischen 2 Datums
Dann noch vorsichtshalber ein distinct und das sollte ausreichen
:zu spät |
AW: Summe der Tage zwischen 2 Datums
So aus dem Kopf könnte das so aussehen:
Anzahl der Behandlungstage im Zeitraum:
SQL-Code:
Liste der Behandlungstage mit der Anzahl der Positionen pro Tag:
select count(cast(rp.behandlungsdatum as date)) as Summe
from tbl_rechnungspositionen rp where cast(rp.behandlungsdatum as date) between '01.01.2016' and '31.12.2016'
SQL-Code:
Da ist natürlich noch Optimierungspotential drin, was die Geschwindigkeit angeht.
select cast(rp.behandlungsdatum as date) as Datum,
count(rp.*) as Summe from tbl_rechnungspositionen rp where cast(rp.behandlungsdatum as date) between '01.01.2016' and '31.12.2016' group by 1 Den Cast mache ich da übrigens, um möglicherweise vorhandene Zeitwerte zu eliminieren. |
AW: Summe der Tage zwischen 2 Datums
Danke Sebastian das klappt.
|
AW: Summe der Tage zwischen 2 Datums
Darf ich nörgeln?!
Wenn man mit COUNT() etwas ermitteln, möge man das bitte nicht "Summe" nennen, sondern vielleicht "Anzahl"? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 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