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, 900 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
Microsoft
gelöst Licensing Server SQL 2014 (7)

Frage von TECHGENE zum Thema Microsoft ...

Datenbanken
gelöst MS SQL Abfragen und Formulare in Webseite einbinden (3)

Frage von Machello zum Thema Datenbanken ...

Backup
Backup-Software für IIS und MS SQL (2)

Frage von Ravelux zum Thema Backup ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (17)

Frage von montylein1981 zum Thema Windows Server ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(2)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (36)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Verschlüsselung & Zertifikate
Mit Veracrypt eine zweite interne (non-system) Festplatte verschlüsseln (11)

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

Internet Domänen
Nameserver ein Geist? (9)

Frage von zelamedia zum Thema Internet Domänen ...