1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

ORACLE SQL 2 Kriterien abfragen

  • Dizzer22000
  • 6. Februar 2009 um 15:29
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Dizzer22000
    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
    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
    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
    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.

  1. Datenschutzerklärung
  2. Impressum