1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Join <> Vlookup...

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von fiammdin, 12 November 2011.

  1. fiammdin

    fiammdin Neuer Benutzer

    Hi zusammen,

    schon vorab vielen lieben dank für jede Hilfestellung die ich bekomme. Ich sitze schon den ganzen Tag am Problem und komm einfach nicht weiter...

    Was mich verückt macht ist das es in Excel super einfach gehen würde, und SQL ist ja wohl besser als Excel... :)

    Ich hab meine Fragestellung in das beigelegte Worddokument angehängt, da ich keine Tabellen im Forum erstellen kann.

    Vielen Lieben Dank an alle
     

    Anhänge:

  2. ukulele

    ukulele Datenbank-Guru

    Enorm hifreich wäre es jetzt noch, den Code für die View zu kennen dann sollte zumindest Frage 1) zu beantworten sein.
     
  3. fiammdin

    fiammdin Neuer Benutzer

    Hi,

    Danke für deinen Support.
    Leider kam ich erst heute wieder dazu mich an die DB anzumelden.
    Aber hier die Scripts.

    1. View für die ZwischenTabelle die mir Label und Description zusammenbringt:

    SELECT dbo.XXX_ACCOUNT_ITEM.Label, dbo.XXX_ACCOUNT_DESC.Description AS HFM_Description
    FROM dbo.XXX_ACCOUNT_DESC INNER JOIN
    dbo.XXX_ACCOUNT_ITEM ON dbo.XXX_ACCOUNT_DESC.ItemID = dbo.XXX_ACCOUNT_ITEM.ItemID

    2: Und hier die HauptView welche die Description ziehen sollte:

    SELECT dbo.tDataMap.PartitionKey, dbo.tDataMap.DimName, dbo.tDataMap.SrcKey, dbo.tDataMap.SrcDesc, dbo.tDataMap.TargKey,
    HFM.dbo.View_Account_Desc.HFM_Description, dbo.tDataMap.WhereClauseType, dbo.tDataMap.WhereClauseValue, dbo.tDataMap.ChangeSign,
    dbo.tDataMap.Sequence, dbo.tDataMap.VBScript
    FROM dbo.tDataMap INNER JOIN
    HFM.dbo.View_Account_Desc ON dbo.tDataMap.TargKey = HFM.dbo.View_Account_Desc.Label

    Wie gesagt, in der ersten View, werden nur die Kontenaufgelistest, mir wäre es aber wichtig das in der zweiten View, wenn kein vergleich gefunden wird mit der Join funktion, die Zelle halt einfach leer gelassen wird.

    thx
     
  4. ukulele

    ukulele Datenbank-Guru

    Wenn ich das richtig verstehe, dann hast du in tDataMap keine ITEM ID stehen und gehst deshalb den Umweg über Target. In diesem Fall müsste dir dashier weiterhelfen:
    Code:
    SELECT    t.Dimension AS Dimension,
            t.[Source] AS [Source],
            t.SourceDesc AS [Source Desc],
            t.[Target] AS [Target],
            d.[Description] AS [Target Description]
    FROM    dbo.tDataMap t,
            dbo.ACCOUNT_ITEM i,
            dbo.ACCOUNT_DESC d
    WHERE    t.[Target] IS NOT NULL
    AND        t.[Target] = i.Label
    AND        i.ItemID = d.ItemID
    Voraussetzung ist, das Target immer eindeutig ist, sonst kommen Einträge mehrfach. Und wenn ich dich richtig verstehe, gibt es nicht zu jedem Target auch eine Description, diese Einträge würden nicht angezeigt werden. Man könnte das aber wie folgt ergänzen:
    Code:
    SELECT    t.Dimension AS Dimension,
            t.[Source] AS [Source],
            t.SourceDesc AS [Source Desc],
            t.[Target] AS [Target],
            d.[Description] AS [Target Description]
    FROM    dbo.tDataMap t,
            dbo.ACCOUNT_ITEM i,
            dbo.ACCOUNT_DESC d
    WHERE    t.[Target] IS NOT NULL
    AND        t.[Target] = i.Label
    AND        i.ItemID = d.ItemID
    UNION ALL
    SELECT    t.Dimension AS Dimension,
            t.[Source] AS [Source],
            t.SourceDesc AS [Source Desc],
            t.[Target] AS [Target],
            '' AS [Target Description]
    FROM    dbo.tDataMap t
    WHERE    t.[Target] IS NULL
    OR        t.[Target] NOT IN (    SELECT    Label
                                FROM    dbo.ACCOUNT_ITEM
                                WHERE    Label IS NOT NULL )
     
Die Seite wird geladen...

Diese Seite empfehlen