Announcement

Collapse
No announcement yet.

Rekords zusammenführen

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

  • Rekords zusammenführen

    Hallo Liebe Experten,

    Ich benutze MS SQL Server 2008.
    Ich versuche die Funktion Group_Concat nachzubilden da ich Sie irgendwie nicht benutzen kann.

    Ich schildere Hiermit das Problem:

    [highlight=sql]SELECT DISTINCT FA.accountid as id , FA.name AS Name, FA.xcell_patientnumber As Nummer, ND.New_name as [Diagnose]
    FROM FilteredAccount FA INNER JOIN
    FilteredLead FL ON FA.originatingleadid = FL.leadid INNER JOIN
    New_mif NM ON FL.leadid = NM.New_MIF_LeadId INNER JOIN
    New_diagnose ND ON NM.New_mifId = ND.New_DiagnoseMIFId[/highlight]
    bekomme ich dann folgende Ergebnisse:


    ich habe es geschafft die Diagnose zu einen Patient zusammen zu führen, folgendes:
    [highlight=sql]Declare @Result VarChar(8000)

    Select @Result = IsNull(@Result + ', ' + ND.New_name, ND.New_name)
    From FilteredAccount FA INNER JOIN
    FilteredLead FL ON FA.originatingleadid = FL.leadid INNER JOIN
    New_mif NM ON FL.leadid = NM.New_MIF_LeadId INNER JOIN
    New_diagnose ND ON NM.New_mifId = ND.New_DiagnoseMIFId
    WHERE FA.accountid = '8FA8214F-ABF0-DF11-B64D-000C29D50686'
    ORDER By ND.New_name

    Select @Result As Diagnose


    /*--------------------------------------------------------------------------------------*/

    SELECT DISTINCT FA.accountid as id , FA.name AS Name, FA.xcell_patientnumber As Nummer, ND.New_name as [Diagnose]
    FROM FilteredAccount FA INNER JOIN
    FilteredLead FL ON FA.originatingleadid = FL.leadid INNER JOIN
    New_mif NM ON FL.leadid = NM.New_MIF_LeadId INNER JOIN
    New_diagnose ND ON NM.New_mifId = ND.New_DiagnoseMIFId
    [/highlight]






    Kann jemand mir dabei helfen, wie kann ich diese Funktion für alle Patienten anwenden? ich muss die Konkatination Fukntion so modifizieren dass sie rekursiv läuft auf allen Patienten, das Problem hier, dass ich diese Fukntion implementiert habe anhand einen Patienten ID und fällt mir keine Idee wie ich es allgemein modifiziere.


    Ich bin sehr Dankbar für jede Hilfe.

    Danke im Voraus
    Attached Files

  • #2
    Originally posted by Xcell_Omar View Post
    Ich benutze MS SQL Server 2008.
    Ich versuche die Funktion Group_Concat nachzubilden da ich Sie irgendwie nicht benutzen kann.
    Kein Wunder, da es diese Funktion in SQL-Server nicht gibt...

    das sollte weiterhelfen

    Comment


    • #3
      Danke für die Antwort.

      Ich habe es probiert aber ich habe eine Fehler meldung wegen der erstellte Fukntion bekommen:

      [highlight=sql]
      create function leseDiag (@id int)
      returns varchar(2000) as
      begin
      declare @Diagnose varchar(2000)
      select @Diagnose = IsNull(@Diagnose + ', ','') + ND.New_name
      from FilteredAccount FA INNER JOIN
      FilteredLead FL ON FA.originatingleadid = FL.leadid INNER JOIN
      New_mif NM ON FL.leadid = NM.New_MIF_LeadId INNER JOIN
      New_diagnose ND ON NM.New_mifId = ND.New_DiagnoseMIFId
      where FA.accountid = @id
      return @Diagnose
      end

      go

      select FA.accountid, dbo.leseDiag(id)

      from FilteredAccount FA INNER JOIN
      FilteredLead FL ON FA.originatingleadid = FL.leadid INNER JOIN
      New_mif NM ON FL.leadid = NM.New_MIF_LeadId INNER JOIN
      New_diagnose ND ON NM.New_mifId = ND.New_DiagnoseMIFId

      drop function leseDiag[/highlight]

      und als Fehler Meldung habe ich folgendes:

      Msg 206, Level 16, State 2, Procedure leseDiag, Line 6
      Operand type clash: uniqueidentifier is incompatible with int
      Msg 4121, Level 16, State 1, Line 2
      Cannot find either column "dbo" or the user-defined function or aggregate "dbo.leseDiag", or the name is ambiguous.


      Ich bitte um Hilfe

      Comment

      Working...
      X