![]() |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Zitat:
Das mit den mehreren SQL.Add() hab ich schon probiert und kam weiterhin, dass das Problem in Zeile 1 liegt. Zitat:
In der Ausgabe soll dann halt der Mitarbeiter dastehen und seine Abteilung ggf. die übergeordnete Abteilung. Noch mal kurz: Orga-Tabelle: alle Abteilungen mit Org-ID, Bezeichnung und higher-ranking welche einer Org-Id entspricht Mitarbeiter-Tabelle: alle Mitarbeiter mit Abteilung (Org-ID) Nachtrag Ich bin jetzt unterwegs, schaue aber per Handy hier immer mal 'rein. Kann aber halt nix konkret dann ausprobieren, erst morgen früh wieder. |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Wenn ich das richtig überblickt habe, kommst Du auch ganz ohne Subselects aus. Das kann ich aber erst später auseinanderklamüsern, da ich hier noch auf Arbeit bin.
[edit] Du willst also alle Mitarbeiter, Ihre Abteilung sowie die ggf. übergeordnete Abteilung ermitteln, stimmt das so? Was kommt denn hierbei heraus?
SQL-Code:
[/edit]
SELECT
M.[mitarbeiter_id], M.[nachname], M.[vorname], M.[org_id], O.[bezeichnung], O2.[bezeichnung] FROM [pb_mitarbeiter] M JOIN [pb_orga] O ON O.[org_id] = M.[org_id] LEFT JOIN [pb_orga] O2 ON O2.[org_id] = O.[higher_ranking] |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
dieses seltsame Higher_Ranking/Org_ID - Pärchen stört mich noch,
ansonsten finde ich an deddyhs Lösung nichts auszusetzen. Gruß K-h |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Was stört Dich daran? Das ist ein simpler Self-Join.
|
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Da es sich um 2 verschiedene Instanzen der selben Tabelle handelt, ist dies auch unumgänglich. Ist ausserdem nicht besonderst unüblich.
|
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Tschuldigung falsch ausgedrückt,
mit higher_ranking wird, wenn ich das richtig verstanden habe, Org_id "ersetzt". Aber nicht in allen Fällen(?) und solche Datenbasteleien erfüllen mich immer mit großem Mißtrauen. Gruß K-H |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
@p80286
ich verstehe das als Baumstruktur wo higher_ranking auf einen Vater verweisen kann, aber nicht muß |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
wenn aber Higher_Ranking NULL ist?
Zitat:
Ist aber alles Spekulatius ohne zu wissen was wirklich in den Daten steht. Gruß K-H |
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
Flache Hierarchien liegen doch im Trend :D
|
AW: SELECT-Statement in Delphi falsch, aber in Konsole richtig
ja, ich könnte mir vorstellen daß es auf sowas rausläuft ...
Code:
Create FUNCTION [dbo].[FT_AbteilungsHirarchi](@org_id int)
RETURNS varchar(8000) as begin Declare @Pfad varchar(8000) Select @Pfad=Bezeichnung from dbo.pb_orga where org_id=@org_id if Exists(Select * from dbo.pb_orga where org_id = (Select higher_ranking from pb_orga where org_id=@org_id)) Select @Pfad=@Pfad + '/' + dbo.[FT_AbteilungsHirarchi]((Select higher_ranking from pb_orga where org_id=@org_id)) Return @Pfad end Select dbo.pb_mitarbeiter.*,[dbo].[FT_AbteilungsHirarchi](pb_mitarbeiter.org_id) as [Abteilung(en)] from pb_mitarbeiter |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz