Announcement

Collapse
No announcement yet.

Alternative zu CSV-Spalte via Skalarwert-Funktion gesucht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Alternative zu CSV-Spalte via Skalarwert-Funktion gesucht

    hallo,
    ich habe zwei Tabellen. Eine mit Autos und eine mit Autoteilen.

    Ich würde gerne eine Zeile pro Auto anzeigen und in einer weiteren Spalte alle Teilenummern zum Auto haben.

    Das kann ich auch schon, nur verwende ich dafür eine Skalarwertfunktion die mir die Daten Kommagetrennt zurückliefert. Allerdings habe ich dadurch eine lange Laufzeit von 1 Minute.

    Subselects kann ich ja mit einem Join auflösen, mit einer Gruppierung auf Auto habe ich das Auto auch nur einmal, aber wie bekomme ich die Teilezeilen in eine Zeile zusammengefasst?

  • #2
    Da ist u. a. auch beschrieben, wie es mit FOR XML PATH ('') geht...

    Comment


    • #3
      hallo,
      ich hab das GROUP BY-Beispiel verwendet. Das ist ne spitzen-Sache mit diesem FOR XML (da hast du mir schon öfters geholfen)

      Jetzt dauert die Abfrage nur noch 29 Sekunden.... Leider immer noch zu lange, vermute dass er sowas ähnliches wie ein Subselect macht.... (also innerer Teil wird pro Zeile ausgeführt) Der innere Teil ist bei mir ein Zugriff via CLR-Tabellenwertfunktion auf eine andere Datenbank. Das ist nur schnell wenn ich für die gesamte Abfrage einen einzigen CLR-Zugriff (via JOIN) habe.

      Comment


      • #4
        Originally posted by openshinok View Post
        Das ist nur schnell wenn ich für die gesamte Abfrage einen einzigen CLR-Zugriff (via JOIN) habe.
        Wenn das schnell geht, diese Daten in eine temporäre Tabelle einfügen und dann auf die temporäre Tabelle die Abfrage loslassen...
        vielleicht bringt das was

        Comment


        • #5
          hallo, das funktioniert mit CLR-Tabellenwertfunktionen wohl nicht. Da habe ich letzte Woche hier schon mal einen anderen Beitrag gehabt diesbezüglich...

          Ich mache es jetzt über weitere Felder die ich zeitlich gesteuert aktualisiere. Das passt sogar besser da ich so auch speichern kann welcher Benutzer die "Warnungen" deaktivert hat. Muss ja nicht immer alles live sein.

          Trotzdem danke

          Comment


          • #6
            Originally posted by openshinok View Post
            hallo, das funktioniert mit CLR-Tabellenwertfunktionen wohl nicht.
            In einer Tabellewert-funktion natürlich nicht...

            War auch eher so gedacht:
            Code:
            SELECT  *
            INTO     #Temp
            FROM    Tabellenwertfunktion
            
            SELECT  *
            FROM    #Temp
            FOR XML PATH ('')

            Comment

            Working...
            X