Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Doppelte Sätze nach Kriterium durchsuchen

Dieses Thema im Forum "Microsoft Access" wurde erstellt von mar_hon, 14 November 2020.

  1. mar_hon

    mar_hon Neuer Benutzer

    Hallo zusammen,
    ich bin auf der Suche nach eine Lösung für einen SQL.
    Ich habe eine Tabelle mit folgenden Werten:

    Auftrag_ID Erfolgart Umsatzbetrag
    1616 4000 50,00 €
    1616 2000 15,00 €
    1518 4000 18,00 €
    1520 2000 18,00 €
    1525 4000 150,00 €
    1525 2000 50,00 €
    1818 2000 0,00 €
    1818 3000 0,00 €

    Ich möchte gerne nur die Auftrag_ids ausgeben haben die mit der Erfolgart 4000 und 2000 gefüllt sind.
    In meinem Beispiel müsste der Output dann so aussehen:
    Auftrag_ID Erfolgart Umsatzbetrag
    1616 4000 50,00 €
    1616 2000 15,00 €
    1525 4000 150,00 €
    1525 2000 50,00 €

    Ich kann, mit meinem SQL zwar die doppelten Auftrag_IDs ausgeben, aber dann nicht auf die Erfolgart 2000 und 4000 einschränken.

    SELECT t1.auftrag_id, t1.erfolgart
    FROM TABELLE1 t1
    INNER JOIN (
    SELECT auftrag_id
    FROM TABELLE1
    GROUP BY auftrag_id
    HAVING COUNT(auftrag_id) > 1) dup ON t1.auftrag_id = dup.auftrag_id

    Kann mir jemand bei meinem Problem helfen?
     
  2. evar46

    evar46 Neuer Benutzer

    Hallo,
    als kleiner Hinweis sei Dir gesagt, dass man es ungern sieht,
    wenn jemand dieselbe Frage in mehreren Foren stellt.
    Man nennt das Crossposting ;)
     
  3. akretschmer

    akretschmer Datenbank-Guru

    Code:
    test=*# select * from mar_hon ;
      id  | erfolg | betrag | waehrung
    ------+--------+--------+----------
     1616 |   4000 |     50 | €
     1616 |   2000 |     15 | €
     1518 |   4000 |     18 | €
     1520 |   2000 |     18 | €
     1525 |   4000 |    150 | €
     1525 |   2000 |     50 | €
     1818 |   2000 |      0 | €
     1818 |   3000 |      0 | €
    (8 rows)
    
    test=*# select * from mar_hon where id in (select id from mar_hon where erfolg in (2000, 4000) group by id having count(1) = 2);
      id  | erfolg | betrag | waehrung
    ------+--------+--------+----------
     1616 |   4000 |     50 | €
     1616 |   2000 |     15 | €
     1525 |   4000 |    150 | €
     1525 |   2000 |     50 | €
    (4 rows)
    
    test=*#
    
    Und ja, bitte kein Crossposting ...
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden