Zwei Auswahlkriterien ( SQL Abfrage )

digor

Neuer Benutzer
Beiträge
4
Hallo zusammen,
ich komme irgendwie mit zwei Auswahlkriterien nicht durch.
1.) Wenn Auftrag nur einen Status hat.
2.) Wenn der Auftrag den Status "A" hat.
Im meinem Fall wäre das Ergebnis "22" und "66".
BESTEN DANK für Eure Unterstützung!
 

Anhänge

  • 22-03-_2023_17-11-30.jpg
    22-03-_2023_17-11-30.jpg
    15,6 KB · Aufrufe: 3
Werbung:
Code:
postgres=# select * from digor ;
 id | auftrag | status 
----+---------+--------
  1 |      22 | a
  2 |      33 | b
  3 |      44 | a
  4 |      44 | b
  5 |      66 | a
  6 |      44 | c
  7 |      55 | a
  8 |      55 | c
(8 rows)

postgres=# with foo as (select auftrag, count(status), array_agg(status) from digor group by auftrag) select * from digor where auftrag in (select auftrag from foo where array_agg = array['a']);
 id | auftrag | status 
----+---------+--------
  1 |      22 | a
  5 |      66 | a
(2 rows)

postgres=#

Prost!
 
so gehts auch in MySQL


Code:
SELECT a.*
FROM auftrg a
WHERE a.status ='a'
AND NOT EXISTS (SELECT 1 FROM auftrg b WHERE b.auftrag = a.auftrag and a.id <> b.id  );


Beispiel

Code:
mysql> SELECT * from auftrg;
+----+---------+--------+
| id | auftrag | status |
+----+---------+--------+
|  1 |      22 | a      |
|  2 |      33 | b      |
|  3 |      44 | a      |
|  4 |      44 | b      |
|  5 |      66 | a      |
|  6 |      44 | c      |
|  7 |      55 | a      |
|  8 |      55 | c      |
+----+---------+--------+
8 rows in set (0.00 sec)

mysql> SELECT a.*
    -> FROM auftrg a
    -> WHERE a.status ='a'
    -> AND NOT EXISTS (SELECT 1 FROM auftrg b WHERE b.auftrag = a.auftrag and a.id <> b.id  );
+----+---------+--------+
| id | auftrag | status |
+----+---------+--------+
|  1 |      22 | a      |
|  5 |      66 | a      |
+----+---------+--------+
2 rows in set (0.01 sec)

mysql>
 
Hallo BerndD, kurz und klar! Klasse! Besten Dank! ich war hier mit falschem Werkzeug (windows funktionen) unterwegs
 
Werbung:
Zurück
Oben