AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Select: Alle Tage des Monats
Thema durchsuchen
Ansicht
Themen-Optionen

Select: Alle Tage des Monats

Ein Thema von Jasocul · begonnen am 8. Sep 2015 · letzter Beitrag vom 9. Sep 2015
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#1

Select: Alle Tage des Monats

  Alt 8. Sep 2015, 10:00
Datenbank: MS-SQL • Version: 2008 R2 • Zugriff über: SQL
Ich benötige ein Select, dass mir eine Liste der Tage eines vorgegebenen Monats liefert. Beim aktuellen Monat nur bis zum aktuellen Datum.
Natürlich werden weitere Spalten gebildet, aber die sind auch vom jeweiligen Datum abhängig.

Spontan habe ich keine Lösung dafür parat und Google hat mir auch nichts geliefert.

Hat jemand eine gute Idee?
Peter

Geändert von Jasocul ( 8. Sep 2015 um 10:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.610 Beiträge
 
#2

AW: Alle Tage des Monats

  Alt 8. Sep 2015, 10:03
Ich benötige ein Select
Wie sieht denn die Datenstruktur aus? Ohne die kann niemand einen Tip geben, wie man so ein Statement zusammenbaut?

Brauchst Du eigentlich einfach immer alle Tage oder nur die, zu denen es auch Einträge in der DB gibt?
Denn im ersten Fall würde ich gar nicht über die Datenbank gehen, sondern die Tage über Hausmittel in der Sprache ermitteln.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
652 Beiträge
 
Delphi 12 Athens
 
#3

AW: Alle Tage des Monats

  Alt 8. Sep 2015, 10:10
Ich bin neugierig geworden und habe mal nach "t-sql days of month" gegoogelt. Der Gockel lieferte mir das hier:
http://stackoverflow.com/questions/6...-in-sql-server

Habe die Lösungen dort nicht selber getestet, aber das sieht doch nach dem aus, was du suchst, oder?
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Alle Tage des Monats

  Alt 8. Sep 2015, 10:12
Wie sieht denn die Datenstruktur aus? Ohne die kann niemand einen Tip geben, wie man so ein Statement zusammenbaut?
Die Datenstruktur spielt keine Rolle.
Im Grunde kann man mit
Code:
Select GetDate()
starten. Das benötigt nichtmal ein "from".
Brauchst Du eigentlich einfach immer alle Tage oder nur die, zu denen es auch Einträge in der DB gibt?
Denn im ersten Fall würde ich gar nicht über die Datenbank gehen, sondern die Tage über Hausmittel in der Sprache ermitteln.
Ich brauche jeden einzelnen Tag.
Bisher habe ich das in Delphi in einer virtuellen Tabelle erstellt. Jetzt soll das aber als View ins System, damit ein dazu passender Report automatisiert ausgedruckt werden kann. Auch das ließe sich mit Delphi lösen, aber wir wollen nach Möglichkeit unser Konzept (ohne externe Programme) einhalten.
Peter
  Mit Zitat antworten Zitat
Bbommel

Registriert seit: 27. Jun 2007
Ort: Köln
652 Beiträge
 
Delphi 12 Athens
 
#5

AW: Alle Tage des Monats

  Alt 8. Sep 2015, 10:15
Ah, sorry, erst durch deine zweite Antwort habe ich gesehen, dass du die Liste der Tage und nicht die Anzahl der Tage brauchst. Man liest halt manchmal auch, was man lesen will. Aber sollte sich dann damit nicht eine Schleife in SQL bauen lassen?
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Alle Tage des Monats

  Alt 8. Sep 2015, 10:16
EDIT: zu langsam
Peter

Geändert von Jasocul ( 8. Sep 2015 um 10:18 Uhr) Grund: zu langsam
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.610 Beiträge
 
#7

AW: Alle Tage des Monats

  Alt 8. Sep 2015, 10:23
Schau Dir mal das hier an: http://social.technet.microsoft.com/...dar-table.aspx
Du kannst damit eine Tabelle mit allen relevanten Daten generieren und die dann direkt abfragen. Ist wahrscheinlich schneller und effizienter als dynamische Daten jedes mal bei einer Abfrage zu generieren. Vor allem bei Reports ist das vermutlich effizienter, weil Du dann über passende Indexe gleich joinen kannst.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Alle Tage des Monats

  Alt 8. Sep 2015, 10:27
@Phoenix:
Danke, das sieht auf den ersten Blick gut aus.

Ich habe jetzt auch nochmal auf englisch recherchiert und folgendes gefunden:
http://stackoverflow.com/questions/1...d-current-date

Mal sehen, was besser passt.
Peter
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#9

AW: Select: Alle Tage des Monats

  Alt 8. Sep 2015, 13:59
Solche und ähnliche Fragen hatten wir hier schon öfter. Eine Rowgenerator Lösung ist m.E. am schnellsten und Ressourcen schonensten. Daraus kann man beliebige Datums ableiten.

Bei der Lösung in SO direkt im vorigen Post muss man natürlich mit maxrecursion 0/*!*/ aufpassen. Wenn der Nutzungsbereich klar ist, hier max 31 (Tage) würde ich das auch so einsetzen. Nicht das mal eine Endlosschleife auftritt, weil die Where Bedingung verschlampt wurde.
Der Hinweis bezüglich fester Tabelle war schon ebenso häufig da. An diesem Punkt landet man sofort, sobald es Anforderungen zu Feiertagen, Arbeitstagen, regional, national, international usw. oder sonstigen harten Ressourcen in diesem Bereich gibt.
Gruß, Jo
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#10

AW: Select: Alle Tage des Monats

  Alt 8. Sep 2015, 20:03
Google mal nach "Date Dimension Table". Es gibt fertigen Tabellen zum Einbauen in deine DB. Dann hast Du keine Sorgen mehr mit Auswertungen, die etwas mit Datumse zu tun haben.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz