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

MSSQL - GROUP BY Problem

Frage Entwicklung Datenbanken

Mitglied: FaBMiN

FaBMiN (Level 2) - Jetzt verbinden

02.02.2011 um 10:48 Uhr, 3818 Aufrufe, 3 Kommentare

Hallo Zusammen,

ich habe folgendes Problem. Mein Query

SELECT asset.objectID
, acb.AccountName
, MAX(llo.logondate)

FROM [dbo].[SPSComputerClassLogon] llo
INNER JOIN SPSAccountClassBase acb ON acb.id = llo.LoggedAccount
INNER JOIN SPSComputerClassBase comp ON llo.[Expression-ObjectID] = comp.[Expression-ObjectID]
INNER JOIN SPSAssetClassBase asset ON comp.[Expression-ObjectID] = asset.[Expression-ObjectID]

GROUP BY asset.objectid, acb.AccountName
ORDER BY asset.objectid
liefert folgende Liste

objectID AccountName (Kein Spaltenname)
CMP00001 PN00005 2011-01-28 08:12:12.000
CMP00002 PN00005 2011-01-27 06:37:19.000
CMP00003 PN00007 2011-01-26 15:50:44.000
CMP00003 PN00010 2011-01-28 14:11:09.000
CMP00003 PN00009 2011-01-27 15:02:05.000
CMP00004 PN00005 2011-01-19 13:42:10.000
CMP00005 PN00007 2011-01-27 06:58:46.000
CMP00006 PN00002 2011-01-28 08:09:45.000
Ich möchte allerdings erreichen, dass unter der ObjectID (CMP0000X) nur ein AccountName (PN0000X) angezeigt wird und zwar der mit den häufigsten LogOnDate (llo.logondate) der letzten 90Tage. Sollte das nicht möglich sein, dann der AccountName mit dem aktuellste Datum.

Kann mir da vielleicht jemand helfen?



Vielen Dank vorab und Grüße

Fabian
Mitglied: nxclass
02.02.2011 um 11:02 Uhr
dass unter der ObjectID (CMP0000X) nur ein AccountName (PN0000X)
zwar der mit den häufigsten LogOnDate (llo.logondate)
der letzten 90Tage
SELECT ... COUNT( asset.objectid ) oder meinst Du mit dem letzten LogOnDate ?
...
WHERE llo.logondate > '2011-01-01' - oder eine Berechnung von NOW() - 90 Tagen
GROUP BY acb.AccountName
...
ORDER BY COUNT( asset.objectid ) DESC
LIMIT 1;

ich kenne nur die Funktionen von MySQL - daher kann ich nicht weiter ins Detail gehen.

EDIT:
oder GROUP BY so belassen und auf Limit verzichten - bin mir nicht sicher was Du als Ergebnis willst.
Bitte warten ..
Mitglied: FaBMiN
02.02.2011 um 11:16 Uhr
Hi,
zunächst vielen Dank für die Mühe =)

die Liste besteht aus Computernamen, AD-Accounts und einem Anmeldedatum. Es werden hier alle jemals angemeldeten AD-Accounts pro Computer mit einem Anmeldedatum gelistet.
Ich möchte aus dieser Liste den am häufigsten aufgeführten AD-Account pro Computer
oder den AD-Account pro Computer mit dem aktuellsten Datum

THX!
Bitte warten ..
Mitglied: MadMax
02.02.2011 um 12:39 Uhr
Hallo Fabian,

probier es mal damit:
01.
select	objectID, AccountName, logondate 
02.
from	( 
03.
	SELECT asset.objectID 
04.
	, acb.AccountName 
05.
	, MAX(llo.logondate) as logondate, 
06.
	row_number() over (partition by asset.objectID order by sum (case when datediff (d, llo.logondate, getdate()) <= 90 then 1 else 0 end) desc, max (llo.logondate) desc) as zeile 
07.
	FROM [dbo].[SPSComputerClassLogon] llo 
08.
	INNER JOIN SPSAccountClassBase acb ON acb.id = llo.LoggedAccount 
09.
	INNER JOIN SPSComputerClassBase comp ON llo.[Expression-ObjectID] = comp.[Expression-ObjectID] 
10.
	INNER JOIN SPSAssetClassBase asset ON comp.[Expression-ObjectID] = asset.[Expression-ObjectID] 
11.
	GROUP BY asset.objectid, acb.AccountName) as tmp 
12.
where	zeile = 1 
13.
ORDER BY objectid
Mit dem row_number erzeugst Du Dir die Sortierung, wie Du sie benötigst und nimmst dann immer den ersten Datensatz.

Gruß, Mad Max
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(3)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Datenbanken
gelöst SSIS - Group By und MAX von String-Spalten (2)

Frage von batpoint zum Thema Datenbanken ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (7)

Frage von schaurian zum Thema DSL, VDSL ...

Windows Netzwerk
gelöst Problem mit PSexec64 von Sysinternals (8)

Frage von MaxMoritz6 zum Thema Windows Netzwerk ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...