Einzelnen Beitrag anzeigen

JannesDKS

Registriert seit: 2. Feb 2009
Ort: Hamburg
61 Beiträge
 
#1

Felder aus meheren Datensätzen verketten - langsam

  Alt 10. Aug 2011, 16:49
Datenbank: Firebird • Version: 2.1 • Zugriff über: IBX
Moin Leute,

ich habe 2 Tabellen: Adressen und eine Tabelle wo Eigenschaften zu den Adressen angelegt werden können.

Nun gab es die Anforderung in einem View in einem Feld die Eigenschaften als verketteten String anzuzeigen.
Also das Ergebnis sieht ungefähr so aus:
'Makler;Newsletter;Weihnachtskarte'.

ich hab das auch schon hinbekommen indem ich eine Stored-Procedure geschrieben habe, die die Datensätze durchläuft und verkettet. Ist aber bei vielen Datensätzendoch recht langsam.
Hier meine Lösung:

SQL-Code:
create or alter procedure CREATE_SELECTION_CHAIN (
    ADDRESSNO varchar(10))
returns (
    SELECTION varchar(500))
as
declare variable SEL varchar(500);
declare variable SELECTIONBUFFER varchar(500);
begin
  sel = '';
  for select property_NAME from property_value_combination pvc
  where pvc.address_no = :addressno
  and pvc.contact_no is null
  into :selectionbuffer
  do begin
    sel = sel || ';' || selectionbuffer;
  end
  selection = sel;
  suspend;
end^
Hat da vielleicht jemand von euch ne Idee, wie man das beschleunigen könnte?

Geändert von mkinzler (11. Aug 2011 um 09:36 Uhr) Grund: SQL-Tag eingefügt
  Mit Zitat antworten Zitat