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

SQL 2005 Server - Abfrage mit mehreren gleichen Werten

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von rs71rs71, 6 März 2009.

  1. rs71rs71

    rs71rs71 Neuer Benutzer

    Hallo,
    ich bin, wahrscheinlich wie manch Anderer auch, etwas verzweifelt, da ich ein Problem nicht lösen kann.:confused:

    Ich versuche eine Abfrage zu erstellen, in der nur gleiche Werte angezeigt werden, die mehrfach vorhanden sind.

    Also, Tabelle a sieht folgendermaßen aus:

    KTR44 KTR12 KTR07 KTR08 etc.
    1.) Proj-1 101101 101101 001
    2.) Proj-1 101101 101101 002
    3.) Proj-1 101202 101202
    4.) Proj-2 101303 101304 001
    5.) Proj-3 101404 101404 001

    KTR44 = Projekt
    KTR12 = übergeordneter Kostenträger
    KTR07 = untergeordneter Kostenträger
    KTR08 = Baugruppe des untergeordneten Kostenträgers

    Tabelle b
    FAK07 = untergeordneter Kostenträger
    FAK08 = Baugruppe des untergeordneten Kostenträgers
    FAK28 = Bezeichnung des untergeordneten Kostenträgers

    KTR07 und KTR08 werden zusammengeführt als KTR07 + '-' + KTR08 AS KTRBGR

    Was ich möchte, ist, dass nur die Daten angezeigt werden,
    I.) bei denen KTR12 mehr als ein KTRBGR zugewiesen hat und
    II.) wenn KTR12 nur ein KTR07 zugewiesen bekommt, aber KTR12 <> KTR07
    Also müßten die Zeilen 3 und 5 rausfliegen.

    In der Tabelle kann
    KTR07 = KTR12 und / oder
    KTR08 leer sein.

    Ich habe schon diverse Count oder Group by ohne Erfolg ausprobiert. Eigentlich müsste man für I.) nur ein GROUP BY KTR12 having Count (KTR12) > 1, aber da ich die anderen Spalten nicht gruppiere und eine Variable KTRBGR benutze, bekomme ich immer eine Fehlermeldung.

    Folgendes statement habe ich probiert, aber durch das GROUP BY bekomme ich nur jeweils 1x KTR07 angezeigt, was aber nicht richtig ist, da unter KTR12 bis zu jeweils 50 gleiche KTR07 mit keiner oder anderen KTR08 vorkommen können.

    SELECT KTR44, KTR12, REPLACE(FAK28, '"', ''),KTR07
    FROM aLEFT OUTER JOIN a ON KTR12 = FAK07
    WHERE KTR12 <> '' GROUP BY KTR07, KTR12, FAK28, KTR44
    having count (KTR07) = 1
    ORDER BY KTR44, KTR12, KTR07

    Ich habe KTR12 mit FAK07 gejoint da ich die Bezeichnung für KTR12 aus der Tabelle b brauche.

    Also, ich hoffe, ich konnte mein Problem einigermaßen verständlich erläutern und wäre sehr dankbar, wenn mir hierbei jemand helfen könnte!!! :)
     

Diese Seite empfehlen