Top-Themen

Aktuelle Themen (A bis Z)

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

MSSQL Zählen der Datensätze nach unterschiedlichen Kriterien

Frage Entwicklung Datenbanken

Mitglied: joni2000de

joni2000de (Level 1) - Jetzt verbinden

25.03.2012 um 17:52 Uhr, 7515 Aufrufe, 6 Kommentare

Hi Admins,

ich möchte auf einer MSSQL 2008 R2 DB in einem Select folgende Daten hinzufügen die sich direkt auf das Select beziehen:
1. laufende Nummer des Datensatzes (alle Datensätze hochzählen)
2. laufende Nummer des Datensatzes bezogen auf einen Referenzwert (hochzählen wenn)
3. Anzahl der Datensätze bezogen auf einen Referenzwert (Maximalwert von hochzählen wenn)
So richtig schlau bin ich bei meinen Recherchen derzeit noch nicht geworden. Geht das im gleichen Select?

Beispiel (Referenz Typ):
01.
Typ Wert lfdNR lfdNRTyp maxNRTyp 
02.
a 12 1 1 3 
03.
a 45 2 2 3 
04.
b 87 3 1 2 
05.
b 65 4 2 2 
06.
a 32 5 3 3
Typ und Wert werden abgefragt, die anderen 3 Spalten sollten sich je nach Ergebnis anpassen.

Danke für eure Hilfe.
Gruß Joni
Mitglied: MadMax
26.03.2012 um 12:50 Uhr
Moin Joni,

01.
select	Typ, 
02.
	Wert, 
03.
	row_number () over (order by Wert) as lfdNr, 
04.
	row_number () over (partition by Typ order by Wert) as lfdNrTyp, 
05.
	count (*) over (partition by Typ) as maxNRTyp 
06.
from	<Tabelle>
Gruß, Mad Max
Bitte warten ..
Mitglied: joni2000de
26.03.2012 um 13:23 Uhr
Hi Mad Max,

danke, das hilft mir schon sehr weiter. Einziges kleines Problem
01.
row_number () over (order by Wert) as lfdNr
muss sich auf eine Spalte beziehen. Gibt es auch eine Möglichkeit einfach alle Zeilen durchzunummerieren ohne Bezug auf einen bestimmten Wert?

Gruß Joni
Bitte warten ..
Mitglied: MadMax
27.03.2012 um 12:42 Uhr
Moin Joni,

was meinst Du mit "lfdNr muß sich auf eine Spalte beziehen"? Daß die Nummerierung nach einer bestimmten Spalte erfolgen soll? Dann verwende im "order by" einfach diese Spalte statt der von mir verwendeten Spalte "Wert".

Gruß, Mad Max
Bitte warten ..
Mitglied: joni2000de
27.03.2012 um 14:31 Uhr
Hallo Mad Max,

das mit dem order by ist mir schon klar. Mir geht es darum, dass ich in der Spalte laufende Nummer einfach die Nummer der Zeile in der sich der Datensatz befindet erhalte. 1. Datensatz = 1, 2. Datensatz = 2, ...
Dabei ist es eigentlich egal was für Daten sich im Datensatz befinden. Im MSSQL Server Managment Studio ist es die Zahl die links von den Daten steht, die aber nicht ausgegeben wird. Ich dachte, vielleicht gibt es da eine Möglichkeit diesen Wert mit auszugeben.
Bei der Variante mit order by muss ich aufpassen, dass eine Änderung der Sortierung des Selects nicht bei der Abfrage row_number vergessen wird nachzuziehen.

Gruß Joni
Bitte warten ..
Mitglied: MadMax
27.03.2012 um 15:49 Uhr
Moin Joni,

die aktuelle Zeilennr. der momentanen Ausgabe gibt es leider nicht in SQL Server. Bei Oracle gabs mal eine Pseudospalte namens "rownum", aber SQL Server bietet das nicht.

Du könntest allenfalls die Sortierung bei der lfdNr angeben und die Abfrage dann nach lfdNr sortieren, dann bräuchtest Du auch nur an einer Stelle die Sortierung ändern.

Gruß, Mad Max
Bitte warten ..
Mitglied: joni2000de
28.03.2012 um 11:32 Uhr
Hi Mad Max,
danke für deine Info. Dein Tipp mit der Sortierung macht Sinn. Ich komme jetzt soweit klar.
Nochmal Danke!

Gruß Joni
Bitte warten ..
Ähnliche Inhalte
E-Mail
Kriterien eines Mailservers
Frage von mexxE-Mail12 Kommentare

Hallo zusammen, ich möchte mein Horizont als Admin erweitern und betreibe einen eigenen Mailserver (Postfix). Ich erfülle dabei bereits ...

Visual Studio
MSSQL Server Management Studio 2014: Datensätze direkt editieren bei verknüpften Tabellen
Frage von rupnikVisual Studio1 Kommentar

Ich möchte quick & dirty händisch direkt im MSSQL Server Management Studio in einer bestehenden Datenbank Datensätze editieren. Das ...

Linux
Vergleich zwischen Distributionen. Mögliche Kriterien?
gelöst Frage von hansleitnerLinux18 Kommentare

Heyho, ich sitze seit längerem an einer Aufgabe von meinem Chef und zwar soll ich folgende Linux Distributionen vergleichen: ...

Microsoft Office
VBA: nach ausgewählten Kriterien filtern
Frage von BerndVorwerkMicrosoft Office7 Kommentare

Hallo an alle. Auch auf die Gefahr hin, dass ich euch so langsam auf die Nerven gehe, aber ich ...

Neue Wissensbeiträge
Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 39 MinutenSicherheit2 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 1 StundeSicherheit9 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 7 StundenMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 20 StundenMac OS X4 Kommentare

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Heiß diskutierte Inhalte
Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell27 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1025 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen18 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...