AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi MS SQL >> SQL Abfrage als DTS Paket

MS SQL >> SQL Abfrage als DTS Paket

Ein Thema von Computerbabalulu · begonnen am 7. Jan 2005 · letzter Beitrag vom 9. Jan 2005
Antwort Antwort
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#1

MS SQL >> SQL Abfrage als DTS Paket

  Alt 7. Jan 2005, 04:46
Hi

Ich hoffe hier kennt sich einer mit MS SQL Server aus.

Ich möchte ein DTS Paket mit einer SQL Abfrage erstellen. Dieses Paket schreibt mir dann regelmäßig Daten in eine Excel Tabelle. Das Funktioniert auch. Nur habe ich noch eine Problem in der Abfrage.

Hier mal der SQL Code:

SQL-Code:
SELECT article, COUNT(article) AS Auftraege, SUM(DISTINCT qty) AS Prints
FROM etikett_positions
WHERE (creation >= GETDATE() - 1) AND (DATEPART(Hour, creation) >= 18)
GROUP BY article
Hier ist mein Problem :

WHERE (creation >= GETDATE() - 1) AND (DATEPART(Hour, creation) >= 18) Diese Abfrage gibt alle DS vom Vortag bis 23:59:59 Uhr zurück.

Ich brauche aber alle Daten für den Zeitraum (GetDate()-1 18:00 Uhr) bis (GetDate())!

Also über 00:00:00 Uhr hinaus.... Ich habe schon alles möglich versucht das Between hin zu bekommen, aber leider bekomme ich das einfach nicht hin. Ich hoffe einer von euch kennt eine Möglichkeit.


Gruß Frank

Frank
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#2

Re: MS SQL >> SQL Abfrage als DTS Paket

  Alt 7. Jan 2005, 09:28
Kleine Hilfsfunktion, die ich sehr liebe:
SQL-Code:
CREATE FUNCTION fx_EncodeDate
( @Y int
, @Mon int
, @D int
, @H int = 0
, @Min int = 0
, @S int = 0
, @MS int = 0
)
RETURNS datetime
AS
BEGIN
  DECLARE @RESULT datetime
      SET @RESULT = dateadd(year,@Y-1900,dateadd(month,@Mon,dateadd(day,@D,-32)))
      SET @RESULT = dateadd(hh,@H,dateadd(n,@Min,dateadd(s,@S,dateadd(ms,@MS,@RESULT))))
   RETURN @RESULT
END
und dann:
SQL-Code:
  SELECT article
       , COUNT(article) AS Auftraege
       , SUM(DISTINCT qty) AS Prints
    FROM etikett_positions
   WHERE creation >= dbo.fx_EncodeDate(Datepart(Year ,creation),
                                       Datepart(Month,creation),
                                       Datepart(Day ,creation)-1,
                                       18,0,0,0)
     AND creation <= GETDATE()
GROUP BY article
alternativ, ohne Funktion (liest sich nicht so schön):
SQL-Code:
  SELECT article
       , COUNT(article) AS Auftraege
       , SUM(DISTINCT qty) AS Prints
    FROM etikett_positions
   WHERE creation >= dateadd(hh,18,round(convert(float,creation-1),0,1))
     AND creation <= GETDATE()
GROUP BY article
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#3

Re: MS SQL >> SQL Abfrage als DTS Paket

  Alt 7. Jan 2005, 11:22
Hi Leuselator

Ein Licht geht auf


Vielen Dank !! Das ist genau das wonach ich gesucht habe. Da sitze ich nun schon zwei Tage dran

Vielen lieben Dank für dich schnelle Hilfe.

Gruß Frank
Frank
  Mit Zitat antworten Zitat
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#4

Re: MS SQL >> SQL Abfrage als DTS Paket

  Alt 7. Jan 2005, 14:12
Hi Leuselator...


Leider ist der Code doch nicht richtig...

Ich brauche ja alle Datensätze zwischen 18:00 Uhr und dem aktuellen Datum/Zeit der Abfrage.
Würde heißen, wenn ich die Abfrage am 10.01.2005 um 05:00 Uhr morgens starte, dann wäre der Zeitraum:

09.01.2005 18:00:00 bis 10.1.2005 05:00:00 Uhr

Kannst du dir das bitte nochmal anschauen

Danke

liebe Grüße Frank
Frank
  Mit Zitat antworten Zitat
Benutzerbild von Leuselator
Leuselator

Registriert seit: 18. Mär 2003
Ort: Berlin
589 Beiträge
 
Delphi 8 Architect
 
#5

Re: MS SQL >> SQL Abfrage als DTS Paket

  Alt 8. Jan 2005, 22:45
Stimmt:


SQL-Code:
SELECT article
       , COUNT(article) AS Auftraege
       , SUM(DISTINCT qty) AS Prints
    FROM etikett_positions
   WHERE creation >= dbo.fx_EncodeDate(Datepart(Year ,GETDATE()), // hier war creation Unsinn
                                       Datepart(Month,GETDATE()),
                                       Datepart(Day ,GETDATE())-1,
                                       18,0,0,0)
     AND creation <= GETDATE()
GROUP BY article
SQL-Code:
  SELECT article
       , COUNT(article) AS Auftraege
       , SUM(DISTINCT qty) AS Prints
    FROM etikett_positions
   WHERE creation >= dateadd(hh,18,round(convert(float,getdate()-1),0,1)) // und hier auch
     AND creation <= GETDATE()
GROUP BY article
Gruß
Tim Leuschner
Programmierer = moderner Sysiphos: stets wenn er meint, den Stein seiner Dummheit auf den Berg des Wissens gewuchtet zu haben, erblickt er einen völlig neuen Aspekt und der Dummfels poltert mit Getöse zurück ins Tal der Unwissenheit...
  Mit Zitat antworten Zitat
Benutzerbild von Computerbabalulu
Computerbabalulu

Registriert seit: 26. Sep 2003
233 Beiträge
 
#6

Re: MS SQL >> SQL Abfrage als DTS Paket

  Alt 9. Jan 2005, 14:22
Hi Leuselator

Danke dir nochmals für deine Hilfe!!

Werde es nachher auf dem Server testen....! Melde mich wieder

Also nochmals vielen Dank!

liebe Grüße
Frank
Frank
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:14 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