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-Key: 302386

Url: https://administrator.de/contentid/302386

Printed on: April 23, 2024 at 19:04 o'clock

Member: it-frosch
Solution it-frosch Apr 20, 2016 at 16:20:03 (UTC)
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
Member: Biber
Solution Biber Apr 20, 2016 updated at 17:37:15 (UTC)
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
Member: AdminKnecht
AdminKnecht Apr 20, 2016 at 20:28:14 (UTC)
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
Member: ukulele-7
ukulele-7 Apr 21, 2016 at 06:49:32 (UTC)
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.
Member: AdminKnecht
AdminKnecht Apr 21, 2016 at 06:56:36 (UTC)
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