Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

SQL GROUP BY Convert Datetime

Frage Entwicklung

Mitglied: StfnCstr

StfnCstr (Level 1) - Jetzt verbinden

21.08.2014, aktualisiert 22.08.2014, 895 Aufrufe, 4 Kommentare

Hallo Zusammen,

ich sitze schon seit gefühlten Stunden an nem Script, ist wahrscheinlich sehr simpel, jedoch seh ich den Wald vor lauter Bäumen nicht.

Im Grunde will ich Zeiten in Tage zusammenfassen. Die Tabelle gibt werte vor wie z.B.

ACD Connected 2014-08-12 18:31:14.130
ACD Connected 2014-08-12 18:40:37.640
ACD Connected 2014-08-13 09:24:38.240
ACD Connected 2014-08-13 09:26:17.947



Ich möchte eine Ausgabe nach Tagen zusammenfasst.

ACD Connected 2014-08-12
ACD Connected 2014-08-13


Ich habs schon Convertiert [ Convert(varchar(10), Datum, 104) ] Wenn ich es jedoch per Group by zusammenfassen möchte, funktioniert dies nicht. Des weiteren kriege ich kein Ergebnis wenn ich nach "12.08.2014" suche.

Ich hoffe ihr habt eine Idee.

Grüße
Stefan
Mitglied: emeriks
21.08.2014, aktualisiert um 16:02 Uhr
Hi,
nen bisschen Codezeile wäre schon hilfreich.
E.
Bitte warten ..
Mitglied: StfnCstr
21.08.2014 um 16:03 Uhr
Hallo,

Könnte so aussehen

SELECT b.Name
,a.Action
,Convert(varchar(10), a.PhoneCallStart , 104)
FROM dbo.Skills b
,dbo.ReportInboundCallTracking a
Where a.SkillID = b.ID and Action = 'Connected' and b.Name = 'ACD-Zentrale'
GROUP BY b.Name, a.Action, a.PhoneCallStart
Bitte warten ..
Mitglied: emeriks
21.08.2014 um 17:17 Uhr
Was für ein SQL Server ist denn dahinter?
In MSSQL würde ich jetzt der Spalte mit den konvertierten Werten explit einen Namen zu geben um dann darüber zu gruppieren.
Also etwa so:

01.
SELECT	b.Name, a.Action, Convert(varchar(10), a.PhoneCallStart , 104) as PCS 
02.
FROM	dbo.Skills b,dbo.ReportInboundCallTracking a 
03.
WHERE   a.SkillID = b.ID and Action = 'Connected' and b.Name = 'ACD-Zentrale' 
04.
GROUP BY b.Name, a.Action, PCS
E.
Bitte warten ..
Mitglied: Biber
21.08.2014, aktualisiert 29.08.2014
Moin StfnCstr,

ausgehend von deinem Statement entweder:
01.
SELECT b.Name 
02.
, a.Action 
03.
, Convert(varchar(10), a.PhoneCallStart , 104), Count(b.Name) as Anzahl 
04.
FROM dbo.Skills b 
05.
,dbo.ReportInboundCallTracking a 
06.
Where a.SkillID = b.ID and Action = 'Connected' and b.Name = 'ACD-Zentrale' 
07.
GROUP BY b.Name, a.Action, Convert(varchar(10), a.PhoneCallStart , 104)
- oder-
01.
SELECT Name, Action PhoneCallDay, Count(*) as Anzahl 
02.
FROM (  
03.
    SELECT b.Name, a.Action 
04.
                , Convert(varchar(10), a.PhoneCallStart , 104) as PhoneCallDay 
05.
    FROM dbo.Skills b 
06.
            , dbo.ReportInboundCallTracking a 
07.
   WHERE a.SkillID = b.ID and Action = 'Connected' and b.Name = 'ACD-Zentrale' 
08.
) x 
09.
 
10.
GROUP BY Name, Action, PhoneCallDay
Den vergebenen Aliasnamen für eine Spalte schon im GROUP BY zu erkennen... das können nur modernere Datenbanken.
Glaube nicht, dass MSSQL das kann.

Anmerkung:das ", Convert(varchar(10), a.PhoneCallStart , 104)" ist eigentlich eine Konvertierung rein zu Display/Reportingzwecken.
Schnell ist diese Konvertierung nicht und zum Sortieren ungeeignet.
Ich würde das GROUP BY nach
01.
 .... 
02.
  SELECT .... 
03.
   , CAST( FLOOR( CAST( a.PhoneCallStart AS FLOAT ) ) AS DATETIME) as AnrufTach
...machen und diesen "Anruftach" dann mit CONVERT(..) optisch aufhybschen.

Bei dieser Mimik wird aus zb "2014-08-13 09:26:17.947" ein "2014-08-13 00:00:00.000" (also der Tag ohne Std/Min/Sek), aber es nach wie vor ein Datumstyp datetime, was für die Sortierung(sgeschwindigkeit) relevant ist. Und bei vielen Daten ist es wirklich spürbar schneller.

Anmerkung 2
Wenn mit der WHERE-Bedingung wirklich schon eingeschränkt wird "Where .... Action = 'Connected' and b.Name = 'ACD-Zentrale'", dann brauchst du die Felder a.Action und b.Name weder per SELECT holen noch danach gruppieren..

Dann reicht ein ein "SELECT 'ACD-Zentrale' as Name, 'Connected' as Action, {andere Felder ] FROM ...GROUP BY..."

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Anpassungsdatei verschiedene Parameter (Hostname, SQL, Registry) ändern (3)

Frage von MiMa89 zum Thema VB for Applications ...

Backup
Veeam Endpoint Backup findet SQL Datenbank nicht (1)

Frage von FFSephiroth zum Thema Backup ...

Datenbanken
gelöst Access 2010 SQL Tabellen Datensätze einfügen (6)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Windows Server
Sql server 2014 installation auf einer windows server 2012r2 vm (5)

Frage von meister00 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Verschlüsselung & Zertifikate
gelöst Festplattenverschlüsselung im Ausland (13)

Frage von Nicolaas zum Thema Verschlüsselung & Zertifikate ...

Windows Server
gelöst Microsoft-Lizenz CALs und passendes Server-Betriebssystem (12)

Frage von planetIT2016 zum Thema Windows Server ...

Festplatten, SSD, Raid
gelöst Fehlerhafte Blöcke im RAID 10 (12)

Frage von Kojak-LE zum Thema Festplatten, SSD, Raid ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (11)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...