Announcement

Collapse
No announcement yet.

Distinct??

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

  • Distinct??

    Hallo,

    ich habe folgendes Problem: Ich bekomme eine Tabelle mit Produktinformationen aus denen (eigentlich) eine eindutige Identifikation anhand zweier Felder möglich ist.

    z.B.:
    ID, Typ, Hersteller, Bezeichnung

    Nun kommt es vor, das TYP und HERSTELLER doppelt vorkommen, sich aber in ID und Bezeichnung unterscheiden.

    Ich möchte nun via T-SQL nur eines der Vorkommen einer TYP/HERSTELLER Kombination selektieren, am liebsten das Erste, um Bezeichnungen später in anderen Tabellen zu prüfen bzw. zu verändern.

    Ich habe mit distinct und Group by probiert, doch bin kläglich gescheitert.

    TIPPS?

    gruß
    heiko

  • #2
    [HIGHLIGHT="SQL"]WITH data
    ( ID
    , Typ
    , Hersteller
    , Bezeichnung
    ) AS
    ( SELECT 1, 'A', 'H', 'x' UNION ALL
    SELECT 2, 'B', 'H', 'y' UNION ALL
    SELECT 3, 'C', 'H', 'z' UNION ALL
    SELECT 4, 'A', 'H', 'v'
    )
    SELECT MIN (ID) AS [Min-ID], Typ, Hersteller
    FROM Data
    GROUP BY Typ, Hersteller[/HIGHLIGHT]

    [HIGHLIGHT="Ergebnis"]
    Min-ID Typ Hersteller
    ----------- ---- ----------
    1 A H
    2 B H
    3 C H
    [/HIGHLIGHT]

    Comment


    • #3
      Danke zunächst,

      aber mir hilft das leider nicht. Ich habe mich vielleicht dumm ausgedrückt. Ein Beispiel der Daten:

      ID; Typ; Hersteller;Bezeichnung

      1;001,002,erstes Produkt rot
      2,001,002,erstes Produkt rot - testversion
      3;002,003,erstes Produkt gruen
      4,002,003,erstes Produkt gruen - testversion


      was ich bräuchte, wäre folgendes Ergebnis:
      1;001,002,erstes Produkt rot
      3;002,003,erstes Produkt gruen


      Sorry, für die dämliche Erklärung, ich hoffe es ist so besser beschrieben.

      Comment


      • #4
        Hallo,

        vlt. hilft ja schon was hiervon: Bei "doppelten" Datensätzen nur einen anzeigen

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Originally posted by PM Heiko View Post
          aber mir hilft das leider nicht
          Echt nicht
          [Highlight="SQL"]WITH data
          ( ID
          , Typ
          , Hersteller
          , Bezeichnung
          ) AS
          ( SELECT 1,'001','002','erstes Produkt rot' UNION ALL
          SELECT 2,'001','002','erstes Produkt rot - testversion' UNION ALL
          SELECT 3,'002','003','erstes Produkt gruen' UNION ALL
          SELECT 4,'002','003','erstes Produkt gruen - testversion'
          )
          SELECT D.ID
          , D.Typ
          , D.Hersteller
          , D.Bezeichnung
          FROM ( SELECT MIN (ID) AS [Min-ID], Typ, Hersteller
          FROM Data
          GROUP BY Typ, Hersteller
          ) AS x
          JOIN data AS d ON d.ID = x.[Min-ID]
          [/Highlight]

          [Highlight="Ergebnis"]ID Typ Hersteller Bezeichnung
          ----------- ---- ---------- ----------------------------------
          1 001 002 erstes Produkt rot
          3 002 003 erstes Produkt gruen[/Highlight]

          Comment

          Working...
          X