1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

ORACLE SQL 2 Kriterien abfragen

  • Dizzer22000
  • 6. Februar 2009 um 15:29
  • Unerledigt
  • Dizzer22000
    2
    Dizzer22000
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 6. Februar 2009 um 15:29
    • #1

    Hallo @ all!
    ich habe ein problem.
    und zwar folgendes:

    Tabelle (Werte):

    Header: WERT - BESCHREIBUNG - ID
    Rows:

    hallo - Ein Test - 0
    hallo - Ein weiterer Test - 1
    test1 - Irgendein Test - 4
    test2 - Irgendein zweiter Test - 3
    test3 - Irgendwas - 0
    test4 - weiter - 6

    und jetzt soll die abfrage alle "rows" abfragen, welche (wenn sie durch "WERT" 2 mal vorhanden sind (z.B. 2x mal "hallo") nur die, mit der ID 1 und nicht mit der ID 0 abfragt

    UND

    wenn der wert nur 1 mal enthalten ist, sollen auch die mit der ID = 0 abgefragt werden.

    könnt ihr mir weiterhelfen?

    verzweifle schön langsam

    mfg
    Dizzer22000

  • Paulchen
    1
    Paulchen
    Gast
    • 6. Februar 2009 um 16:13
    • #2

    Selektiere alles, gruppiere nach WERT. Mit der Aggregatfunktion COUNT kannst du dann abfragen, wie oft dieser WERT vorkommt. Diese Abfrage verwendest du als Unterabfrage und selektierst aus deiner Tabelle genau die WERTe, die 2x vorkommen (laut Unterabfrage), bzw. die WERTe mit ID 0, die nur 1x vorkommen.

    Frage zu deinem Datenbankschema: Was ist der Primärschlüssel deiner Tabelle?

  • Dizzer22000
    2
    Dizzer22000
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 6. Februar 2009 um 16:32
    • #3

    Als Primary Key verwende ich eine eigene Spalte (UniqueID).
    Wie funktioniert das mit den unterabfragen.

    kenn mich da leider nicht so gut aus... könntest du es mir vll. zeigen??
    bitte, danke...

    mfg
    dizzer22000

  • Trux
    12
    Trux
    Mitglied
    Reaktionen
    26
    Punkte
    1.396
    Beiträge
    274
    • 6. Februar 2009 um 17:48
    • #4

    ich geh von nem table test aus (mysql, aber das sollte hier egal sein):

    Code
    create table test(
       unique_id integer primary key,
       wert varchar(255),
       beschreibung varchar(255),
       id integer
    );
    
    
    mysql> select * from test;
    +-----------+-------+------------------------+------+
    | unique_id | wert  | beschreibung           | id   |
    +-----------+-------+------------------------+------+
    |         0 | hallo | Ein Test               |    0 |
    |         1 | hallo | Ein weiterer Test      |    1 |
    |         2 | test1 | Irgendein Test         |    4 |
    |         3 | test2 | Irgendein zweiter Test |    3 |
    |         4 | test3 | Irgendwas              |    0 |
    |         5 | test4 | weiter                 |    6 |
    +-----------+-------+------------------------+------+
    Alles anzeigen

    so kannst du alle werte ausgeben die doppelt vorkommen:

    Code
    select wert from test group by wert having count(*)=2;

    dann kannst du sagen, du willst alle zeilen ausgeben mit id=1, wo der wert in der liste, der doppelten vorkommt:

    Code
    select * from test t 
    where t.id=1 and t.wert in 
       (select wert
        from test
        group by wert
        having count(*)=2);

    selbiges kannst du mit den einfach vorkommenden machen.

    kombinieren kannst du 2 abfragen mittels 'union':

    Code
    (select * from test t where t.id=0 and t.wert in (select wert from test group by wert having count(*)=1))
    union
    (select * from test t where t.id=1 and t.wert in (select wert from test group by wert having count(*)=2))
  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern