adminknecht
Goto Top

SELECT DISTINCT nur für eines der Felder in der Abfrage?

Hallo,

da ich nicht der DB-Guru bin und eine Abfrage erstellen muss hänge ich hier:

Das Dataset sieht momentan so aus:

KDRN FIRMA PERSON

123 Müller KG Schwarz
123 Müller KG Kohl
129 Hansen AG Schmitz
134 Stuss GmbH Mann
134 Stuss GmbH Schöne
134 Stuss GmbH Koslowski


Ich möchte aber für jede Firma nur EINE Person, da zur Person keine weiteren Daten vorliegen (Inhaber o.ä.) ist es eigentlich egal welche der mehrfach vorkommenden je Firma letztendlich übrig bleibt, das Dataset soll also nur noch 3 Zeilen umfassen!

select distinct KDNR, FIRMA, PERSON from .... funktioniert ja nun mal nicht

Bin für jeden Tipp dankbar!

Marcus

Content-ID: 302386

Url: https://administrator.de/forum/select-distinct-nur-fuer-eines-der-felder-in-der-abfrage-302386.html

Ausgedruckt am: 27.12.2024 um 10:12 Uhr

it-frosch
Lösung it-frosch 20.04.2016 um 18:20:03 Uhr
Goto Top
Hallo Marcus,

wenn es egal ist dann lass die Person doch einfach weg und du hast das was du willst.

Select distict KDNR, FIRMA from TABELLE;

oder

Select KDNR, FIRMA,count(PERSON) as ANZ_PERSONEN from TABELLE group by KDNR,FIRMA order by KDNR;


grüße vom itfrosch
Biber
Lösung Biber 20.04.2016 aktualisiert um 19:37:15 Uhr
Goto Top
Moin AdminKnecht,

wassn Nickname.....

Versuche es so:
SELECT  KDNR, FIRMA, max(PERSON) as einePerson
FROM deineTab
GROUP BY KDNR, FIRMA

Oder statt MAX() irgendeine andere Aggregatfunktion, meinetwegen auch FIRST(), oder MIN()...
Aber wie IT-Frosch gesagt hat... wenn der PERSON-Name doch eh ein zufälliges Ergebnis ist, dann kannst du ihn doch auch weglassen.
Oder statisch den Text "ist uns bekannt" oder "nur mit Admin-Rechten sichtbar" reinschreiben.

Grüße
Biber
AdminKnecht
AdminKnecht 20.04.2016 um 22:28:14 Uhr
Goto Top
Hallo ihr zwei,

danke euch, so hat das geklappt, ich habe die Aggregatfunktion MAX benutzt und den Rest der Felder mit GROUP BY gruppiert face-smile

Ist alles am Anfang ein bisschen zäh, komme eigentlich aus dem Bereich "Sys.Admin" und werde/muss mich jetzt umorientieren in Richtung Reporting/ReportingServices/VisualStudio/Cubeware ... eigentlich auch sehr interessant, Grundkenntnisse in SQL/ACCESS sind zwar vorhanden, aber ich werde bestimmt demnächst noch die eine oder andere Frage posten!

Schöne Grüße

Marcus
ukulele-7
ukulele-7 21.04.2016 um 08:49:32 Uhr
Goto Top
Je nachdem welches SQL du einsetzt gibt es auch noch eine Menge weiterer Möglichkeiten. Man könnte z.B. gezielt eine Person per Sortierung auswählen oder alle Personen als Zeichenkette anzeigen.
AdminKnecht
AdminKnecht 21.04.2016 um 08:56:36 Uhr
Goto Top
...OK, ich nutze hier MSSQL 2014 mit einem VisualStudio 2013 als Frontend für die ReportingServices... face-smile

Danke aber für den Hinweis!

Marcus