Hallo Zusammen,
bin neu hier und hoffe sehr das mir hier vielleicht wer Tipps//Anregungen gibt.
Vorab: Ich habe leider recht wenige MSSQL/SQL Erfahrungen, haben vor Ewigkeiten mal ein wenig mit PHP und MYSQL gearbeitet aber das wars.
Nun stehe ich leider für mich vor einer kleinen Herausforderung. Über eine Software werden unsere Ein und ausgehende Anrufe in einer MS SQL 2008 DB protokolliert. Leider ist die Software der letzte ****, es ist mir z.B. mit dieser nicht möglich Filter zu setzen die einen Zeitraum aus bzw. eingrenzen.
Nun habe ich mir gedacht, ich erstelle eine weitere DB und kopiere Nachts immer alle Relevanten Informationen (die SW Protokolliert leider auch jede Menge unsinn) und eine neue DB. Dies habe ich nun auch schon mit folgenden T-SQL Code über das Management Studio geschafft:
Kurz zur Erklärung:
sTipo = Eingehender oder Ausgehender Anruf; I = incomming O = outgoing
sEsitoChiamata_c = Angenommen/nicht angenommen; 1 = angenommen 0= nicht angenommen
dGateway ist leider ein DateTime Format. Dazu gleich mehr.
Nun möchte ich gerne via Excel auf diese Datenbank zugreifen und mit Pivot Tabellen arbeiten. Dies ist auch soweit kein Problem, jedoch habe ich hier wieder das Problem das ich die Zeiten nicht eingrenzen kann (zb alle eingehenden Anrufe die nicht zwischen 9:00 und 17.30Uhr liegen).
Ich denke mir mal das liegt an diesem DateTime Format und würde dies gerne Splitten und dem entsprechend auf die neue DB Verteilen.
Kann mir hier vielleicht wer sagen wie ich das am besten mache?
Hab schon ein paar Beispiele im Internet gefunden, konnte damit jedoch mangels an Erfahrung nichts mit anfange. Ich gehe auch davon aus das man meinen oben genannten SQL Code verbessern könnte, aber er funktioniert ^^
Hoffe mir kann wer weiter helfen,
Vielen Dank,
Skalldem
EDIT: Hab noch eine Alternative gefunden mit Datepart. Jedoch habe ich hier das Problem das ich nicht verstehe wie ich Stunde und Minute angeben kann, was leider sehr wichtig ist. Hier gerade das Beispiel:
Wie kann ich das nun machen das unter NotBetween '9:00' and '17:30' stehen kann? Ich weiß ich kann DatenPart (HOUR, MINUTE, Datum) angeben, aber weiß nicht wie ich dann wie where Klauses gestalten muss....
bin neu hier und hoffe sehr das mir hier vielleicht wer Tipps//Anregungen gibt.
Vorab: Ich habe leider recht wenige MSSQL/SQL Erfahrungen, haben vor Ewigkeiten mal ein wenig mit PHP und MYSQL gearbeitet aber das wars.
Nun stehe ich leider für mich vor einer kleinen Herausforderung. Über eine Software werden unsere Ein und ausgehende Anrufe in einer MS SQL 2008 DB protokolliert. Leider ist die Software der letzte ****, es ist mir z.B. mit dieser nicht möglich Filter zu setzen die einen Zeitraum aus bzw. eingrenzen.
Nun habe ich mir gedacht, ich erstelle eine weitere DB und kopiere Nachts immer alle Relevanten Informationen (die SW Protokolliert leider auch jede Menge unsinn) und eine neue DB. Dies habe ich nun auch schon mit folgenden T-SQL Code über das Management Studio geschafft:
PHP Code:
/****** Skript für SelectTopNRows-Befehl aus SSMS ******/
/**** leeren der Aktuellen Tabelle
Truncate table [NeueDB].[dbo].[InCall] ****/
/**** Einfügen der nicht angenommen anrufe****/
INSERT INTO NeueDB.dbo.InCall(ID, Wochentag, Anrufdauer, DW, Typ, Datum, Abgelehnt, Uhrzeit)
SELECT [lPKId]
,[sGiorno_c]
,[dDurata]
,[sDerivato]
,[sTipo]
,[dGatewayDateTime]
,[sEsitoChiamata_c]
,[dGatewayDateTime]
FROM [AlteDB].[dbo].[Chiamate]
where [AlteDB].[dbo].[Chiamate].[dGatewayDateTime] LIKE '%2011%' and sTipo = 'I' and sEsitoChiamata_c = '0';
/**** Einfügen der angenommen anrufe ****/
INSERT INTO NeueDB.dbo.InCall(ID, Wochentag, Anrufdauer, DW, Typ, Angenommen, Datum, Uhrzeit)
SELECT [lPKId]
,[sGiorno_c]
,[dDurata]
,[sDerivato]
,[sTipo]
,[sEsitoChiamata_c]
,[dGatewayDateTime]
,[dGatewayDateTime]
FROM [AlteDB].[dbo].[Chiamate]
where [AlteDB].[dbo].[Chiamate].[dGatewayDateTime] LIKE '%2011%' and sTipo = 'I' and sEsitoChiamata_c = '1';
sTipo = Eingehender oder Ausgehender Anruf; I = incomming O = outgoing
sEsitoChiamata_c = Angenommen/nicht angenommen; 1 = angenommen 0= nicht angenommen
dGateway ist leider ein DateTime Format. Dazu gleich mehr.
Nun möchte ich gerne via Excel auf diese Datenbank zugreifen und mit Pivot Tabellen arbeiten. Dies ist auch soweit kein Problem, jedoch habe ich hier wieder das Problem das ich die Zeiten nicht eingrenzen kann (zb alle eingehenden Anrufe die nicht zwischen 9:00 und 17.30Uhr liegen).
Ich denke mir mal das liegt an diesem DateTime Format und würde dies gerne Splitten und dem entsprechend auf die neue DB Verteilen.
Kann mir hier vielleicht wer sagen wie ich das am besten mache?
Hab schon ein paar Beispiele im Internet gefunden, konnte damit jedoch mangels an Erfahrung nichts mit anfange. Ich gehe auch davon aus das man meinen oben genannten SQL Code verbessern könnte, aber er funktioniert ^^
Hoffe mir kann wer weiter helfen,
Vielen Dank,
Skalldem
EDIT: Hab noch eine Alternative gefunden mit Datepart. Jedoch habe ich hier das Problem das ich nicht verstehe wie ich Stunde und Minute angeben kann, was leider sehr wichtig ist. Hier gerade das Beispiel:
PHP Code:
SELECT [Datum]
,[DW]
,[Wochentag]
FROM [NeueDB].[dbo].[InCall]
where DATEPART (HOUR, Datum) not between '9' and '17' and DATEPART (YEAR, Datum) like '%2011%' and Abgelehnt = '0'
Order by 'Wochentag';
Comment