![]() |
MS SQL >> SQL Abfrage als DTS Paket
Hi :hi:
Ich hoffe hier kennt sich einer mit MS SQL Server aus. :cry: 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:
Hier ist mein Problem :
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
SQL-Code:
Diese Abfrage gibt alle DS vom Vortag bis 23:59:59 Uhr zurück.
WHERE (creation >= GETDATE() - 1) AND (DATEPART(Hour, creation) >= 18)
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 :dp: |
Re: MS SQL >> SQL Abfrage als DTS Paket
Kleine Hilfsfunktion, die ich sehr liebe:
SQL-Code:
und dann:
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
SQL-Code:
alternativ, ohne Funktion (liest sich nicht so schön):
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
SQL-Code:
Gruß
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 |
Re: MS SQL >> SQL Abfrage als DTS Paket
Hi Leuselator :hi:
:coder2: Ein Licht geht auf :mrgreen: Vielen Dank !! Das ist genau das wonach ich gesucht habe. Da sitze ich nun schon zwei Tage dran :stupid: Vielen lieben Dank für dich schnelle Hilfe. Gruß Frank |
Re: MS SQL >> SQL Abfrage als DTS Paket
Hi Leuselator...
:roll: 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 :stupid: Danke liebe Grüße Frank |
Re: MS SQL >> SQL Abfrage als DTS Paket
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:
Gruß
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 |
Re: MS SQL >> SQL Abfrage als DTS Paket
Hi Leuselator
Danke dir nochmals für deine Hilfe!! :thumb: Werde es nachher auf dem Server testen....! Melde mich wieder :stupid: Also nochmals vielen Dank! liebe Grüße Frank |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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 by Thomas Breitkreuz