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, 916 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
Datenbanken
gelöst MYSQL View group by (2)

Frage von schneerunzel zum Thema Datenbanken ...

Datenbanken
gelöst SQL ORDER BY und Join mit 2 Tabellen (7)

Frage von Dipps zum Thema Datenbanken ...

Datenbanken
SQL restore bringt Fehler (2)

Frage von franksig zum Thema Datenbanken ...

Neue Wissensbeiträge
Backup

Veeam-Fehler bei Bandwechsel: Timed out waiting for tape

Tipp von goRaini zum Thema Backup ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(29)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Humor (lol)

Bester Vorschlag eines Supporttechnikers ever: APC

(15)

Erfahrungsbericht von DerWoWusste zum Thema Humor (lol) ...

Heiß diskutierte Inhalte
Internet
gelöst Mitarbeiter surft auf unerwünschter Seite - Wie damit umgehen? (55)

Frage von sabines zum Thema Internet ...

Netzwerke
LAN2LAN Verbindung sehr langsam flaschenhals gesucht (27)

Frage von PixL86 zum Thema Netzwerke ...

LAN, WAN, Wireless
Rogue Access Point (20)

Frage von Axel90 zum Thema LAN, WAN, Wireless ...

E-Mail
Fake E-Mail in Outlook für Demonstartionszwecke (12)

Frage von sascha382 zum Thema E-Mail ...