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 IPWünsch Dir wasWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst SQL Abfrage in MS SQL-Server

Mitglied: CeyxRemains

CeyxRemains (Level 1) - Jetzt verbinden

16.07.2020, aktualisiert 09:27 Uhr, 238 Aufrufe, 9 Kommentare

Hallo zusammen,

ich habe ein Problem bei dem ich leider nicht weiterkomme.

Folgende Tabellen existieren

Vertreter:
VerLfdnr | VerName | VerKostenstelle | VerKuerzel | ...

Adresse: (entspricht einem Unternehmen)
AdrLfdnr | AdrName | ...

Merkmale:
MerLfdnr | MerAdrLfdnr | MerBezeichnung | ...

Kontakte: (entspricht einer Korrespondenz, zB Telefonat)
KonLfdnr | KonAdrLfdnr | KonDatum | KonVerLfdnr | ...

Die Aufgabenstellung lautet wie folgt:
Gib von allen Adressen die das Merkmal = 'OEM' besitzen jeweils das größte Datum aus, bei dem der Vertreter die VerGruppe = 100056553 hat.

Folgendes hab ich selbst schon geschafft:
Folgendes passt aber noch nicht:
  • für jeden Vertreter das größte Datum pro Adresse ausgegeben
  • Merkmale werden noch nicht berücksichtigt

Evtl. könnt ihr mir helfen. Vielen Dank schon mal im Voraus für eure Bemühungen.
Mitglied: em-pie
LÖSUNG 16.07.2020, aktualisiert um 12:55 Uhr
Moin,

klingt nach einer Schul-/ Hausaufgabe!?

Daher mal nur ein Impuls für weitere Recherchen:
Beschäftige dich mal mit JOINS, in deinem Fall INNER JOIN.

Was du machen musst:

Du startest mit der Tabelle Kontakte
Hier joinst du die Tabellen
  • Vertreter via VerLfdnr
  • Adresse via AdrLfdnr
    • Diese Tabelle wird noch mit der Tabelle Merkmale via MerAdrLfnr gejoint

Jetzt fängst du mit dem richtigen Group By an
Dein Select dann entsprechend aufbauen.


Ich könnte dir jetzt auch direkt alles fertig schreiben, aber da bleibt weniger hängen

Gruß
em-pie
Bitte warten ..
Mitglied: CeyxRemains
16.07.2020 um 13:10 Uhr
Hallo em-pie,

danke für den Hinweis. Stimmt wenn man es sich selbst erarbeitet, bleibt sicher mehr hängen. Dann starte ich gleich mal mit der Recherche zu den inner joins
Bitte warten ..
Mitglied: GrueneSosseMitSpeck
16.07.2020 um 15:52 Uhr
achtung mit Datumsformaten... wenn die Spalte vom Typ Datetime ist dann geht das max(kondatum), sollte das Datum aber als String hinterlegt worden sein, dann mußt du das noch nach Datetime casten damit das Max() sinnvolle Ergebnisse liefert. Ein Max auf Strings angewendet liefert nur dann korrekte Resultate wenn das Datum als YYYY-mm-dd hinterlegt ist, alles andere führt nur zu Murks.
Bitte warten ..
Mitglied: CeyxRemains
16.07.2020 um 17:00 Uhr
Hallo,

@GrueneSosseMitSpeck: Danke für den Hinweis. Ja es handelt sich um den Typ Datetime

Ich hab jetzt versucht die Abfrage mit den Inner Joins umzusetzen:

Somit erhalte ich für die Adressen mit dem Merkmal 'OEM' alle Kontakte jener Vertreter die sich in der VerGruppe 100056553 befinden.

Wie schaffe ich es jetzt für jede Adresse das größte Datum + den entsprechenden Vertreter auszugeben? Wenn ich
schreibe, muss ich adrlfdnr und verkuerzel gruppieren und erhalte somit nur den größten Kontakt pro Adresse und pro Vertreter...

Danke für eure Geduld
Bitte warten ..
Mitglied: CeyxRemains
27.07.2020 um 16:07 Uhr
Hallo zusammen,

könnt ihr mir hierzu schon weiterhelfen?

Danke für die Unterstützung
Bitte warten ..
Mitglied: MadMax
27.07.2020 um 19:34 Uhr
Hallo CeyxRemains,

in Deiner Aufgabenstellung kann ich nirgends entdecken, daß Du auch Vertreterdaten ausgeben sollst. Nur das größte Datum zur Adresse. Wenn Du also nur nach den Adressdaten gruppierst und das größte Datum holst, hast Du Dein Ergebnis.

Gruß, Mad Max
Bitte warten ..
Mitglied: CeyxRemains
27.07.2020 um 22:39 Uhr
Hallo Mad Max,

danke für deinen Post. Du hast Recht, ich habe im Eingangsthread nichts davon geschrieben, dass ich Vertreterdaten ausgeben möchte. Beim Herumprobieren ist mir aber aufgefallen, dass ich scheinbar die Logik der SQL-Abfragen noch nicht richtig durchschaut hab.

Wenn ich zusätzlich Vertreterdaten ausgeben möchte, muss ich doch das Ergebnis meiner bestehenden SQL Abfrage (siehe oben) wie eine Tabelle verwenden, oder? Leider versteh ich aber noch nicht wie ich das anstellen soll.

Zur Erklärung: Hier handelt es sich um eine Aufgabenstellung, die sich weiter aufbaut...

Gruß, CeyxRemains
Bitte warten ..
Mitglied: MadMax
LÖSUNG 28.07.2020 um 00:52 Uhr
Hallo CeyxRemains,

wenn Du zusätzlich Vertreterdaten ausgeben willst, hast Du zwei Möglichkeiten:
1. Du nimmst die Abfrage wie ich Dir oben gesagt habe (ohne Vertreterdaten) und liest dann die Vertreter datensatzweise extra dazu. Das ist aber nur halbwegs sinnvoll, wenn Du nur eine Information vom Vertreter willst:
2. Du holst Dir Adressen und Merkmale und liest Dir mit einem "cross apply (select top (1) ... order by kondatum desc)" Vertreter und Kontakte dazu.

Die bessere Methode ist die 2., les mal das "cross apply" nach.

Sobald Du aber Vertreterdaten dazuliest, hast Du aber das Problem, daß möglicherweise mehrere Vertreter dieses letzte Kontaktdatum haben. Mit den beiden obigen Methoden holst Du die Informationen von einem davon dazu. So wie es oben steht ist das dann zufällig, welcher Vertreter geholt wird, mit einem zusätzlichen Sortierkriterium (z.B. verkuerzel) könntest Du steuern, welcher es ist.

Gruß, Mad Max
Bitte warten ..
Mitglied: CeyxRemains
31.07.2020 um 12:03 Uhr
Hallo MaxMax,

vielen Dank für deine Hilfe. Für mich reicht der erste Vorschlag. Damit hat es super funktioniert.

Ich werde mir aber "cross apply" für zukünftige Abfragen etwas genauer ansehen.

Danke an alle die mich hier unterstützt haben

Gruß, CeyxRemains
Bitte warten ..
Ähnliche Inhalte
Datenbanken
MS-SQL-Server + T-SQL+Batch
Frage von kallewirschDatenbanken4 Kommentare

Hallo Gemeinde, mal wieder ein Problem aus dem Bereich des MS-SQL-Servers. Folgendes Thema: Nachts sollen automatisch Backups der DBen ...

Windows Tools
MS SQL Instanz
Frage von sebastian2608Windows Tools6 Kommentare

N´ Abend Leute, heute habe ich einen besonders seltsamen Fall für euch ;) Folgende Grundsituation: Ein Bekannter hatte bis ...

Windows Update
MS SQL Server Updates
Information von sabinesWindows Update

Für 2012, 2014 und 2016 sind seit Dienstag wichtige Sicherheitsupdates verfügar, die eine remote, leicht auszunutzende Lücke im Reporting ...

Datenbanken
MS SQL - primary Datei verkleinern
gelöst Frage von Thomas2Datenbanken6 Kommentare

Hallo zusammen, ich möchte eine MS SQL Datenbank verkleinern, da diese die 10 GB Grenze für Express Versionen erreicht ...

Neue Wissensbeiträge
Humor (lol)

Wie verhindere ich, dass Websitebesucher die Werbecookies abschalten?

Information von DerWoWusste vor 1 TagHumor (lol)6 Kommentare

Ich habe gerade auf die Antwort gefunden: ich täusche einen langwierigen Änderungsprozess vor und biete nebenbei einen Cancelbutton, den ...

Sicherheit

Windows Setup erlaubt elevation of privilege plus DC Updates

Information von DerWoWusste vor 1 TagSicherheit3 Kommentare

Eine interessante neue Sicherheitslücke. Details gibt es wenig, aber die klare Empfehlung: If you are using WSUS or MEM ...

Exchange Server

Exchange Server 2016 and the End of Mainstream Support

Information von Dani vor 2 TagenExchange Server

As hopefully many of you already know Exchange Server 2016 enters the Extended Support phase of its product lifecycle ...

Viren und Trojaner

Schwachstelle in Teamviewer oder aufgeflogene Backdoor?

Information von magicteddy vor 2 TagenViren und Trojaner1 Kommentar

Moin, die Interpretation überlasse ich jedem selber, ich habe eine deutliche Abneigung dagegen. Wer es nutzen muss sollte schleunigst ...

Heiß diskutierte Inhalte
Windows Server
Windows Server "mit" oder "ohne" Antivirensoftware
gelöst Frage von Dr.MabuseWindows Server23 Kommentare

Antiviren-Software: Fluch oder Segen? Die Frage der Sinnhaftigkeit von Antiviren-Software ist nicht neu Die Software kostet Performance, sorgt oft ...

Windows Server
Patchday August Server 2019 - zerstört Hyper V Dienste
Frage von ichkriegediekrieseWindows Server19 Kommentare

Guten Morgen alle zusammen Gestern habe ich, wie oft die Sicherheitsupdates vom Patchday eingespielt da ja doch einige Sicherheitsupdates ...

Hardware
Azubi Projekt - Serverhardware
Frage von nachgefragtHardware19 Kommentare

Hallo Administratoren, für ein Azubi-Projekt benötige ich euren Rat, um ihr das Thema Serverhardware näher zu bringen: Server zusammenbauen ...

iOS
Facetime Nummer
gelöst Frage von ral9004iOS14 Kommentare

Hallo Ein Kollege bat mich, ihm für den Videochat meine Facetime Nummer zu mailen. Meine Facetime App läuft auf ...

Administrator Magazin
08 | 2020 Cloud-First-Strategien sind inzwischen die Regel und nicht mehr die Ausnahme und Workloads verlagern sich damit in die Cloud – auch Datenbanken. Dort geht es aber nicht nur um die Frage, wie die Datenbestände in die Wolke zu migrieren sind, sondern auch darum, welche Datenbank ...