Einzelnen Beitrag anzeigen

Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Zeileninhalt direkt aus Parameter erzeugen

  Alt 22. Feb 2019, 09:05
Die bezeichneten Zeilen (1,2) sind noch ungenügend, es darf nur ein Element erzeugt werden.
Laut deiner Darstellung der Geräteliste muss es unter (1) zwei Ergebniszeilen geben (Gehäuse und Netzteil).
Dementsprechend unter (2) vier Zeilen (Gehäuse-Boden, Gehäuse-Deckel, Netzteil-Gehäuse und ElektronikBoard zu Netzteil).

Sollte meine Analyse falsch sein, verstehe ich da wohl etwas nicht.


Bei ParamInteger1,2,3 wird der gleiche Wert übergeben.
Dann nimm auch nur einen Parameter. Es sei denn, du musst für zukünftige Aufgaben an der Stelle mit unterschiedlichen Paramtern rechnen.

Ich habe mal versucht, dein Aufgabe unter den gesetzten Bedingungen auf meine Weise zu lösen. Da ich kein Access zur Verfügung habe, ist das natürlich ins blaue getippt und völlig ungeprüft!
Unter MS-SQL, Oracle o.ä. würde ich das vermutlich eher mit einer User-Defined-Function lösen. Wobei das aber sehr von der exakten Aufgabe abhängt. Für eine Visualisierung in einer Anwendung, würde ich sicher andere Wege gehen.

Hier mein Ansatz:
Code:
SELECT *
  FROM (
 
SELECT 1 AS HLevel,
       AR.Bezeichnung,
       '000000' AS Srt
  FROM Hierarchie H1
  LEFT JOIN Artikel AR
       ON AR.ArtikelID = H1.Parent
 WHERE H1.Parent = :ParamInteger1

UNION

SELECT 2 AS HLevel,
       AR.Bezeichnung,
       '00' & h2.Sort & '00' AS Srt
  FROM Hierarchie H1
  LEFT JOIN Hierarchie H2
       ON H2.ArtLink = H1.Parent
  LEFT JOIN Artikel AR
       ON AR.ArtikelID = H2.ArtLink
 WHERE H1.Parent = :ParamInteger2

UNION

SELECT 3 AS HLevel,
       AR.Bezeichnung,
       '00' & h2.Sort & h3.Sort AS Srt
  FROM Hierarchie H1
  LEFT JOIN Hierarchie H2
       ON H2.ArtLink = H1.Parent
  LEFT JOIN Hierarchie H3
       ON H3.ArtLink = H2.ArtLink
  LEFT JOIN Artikel AR
       ON AR.ArtikelID = H3.ArtLink
 WHERE H1.Parent = :ParamInteger3

 )

 order by Srt
Peter

Geändert von Jasocul (22. Feb 2019 um 13:53 Uhr) Grund: Hinweis von p80286 und Schokohase berücksichtigt
  Mit Zitat antworten Zitat