![]() |
Datenbank: Interbase • Version: 6.1 • Zugriff über: egal
Where-Bedingung über einen Status
Hallo,
der Titel ist wirklich dumm formuliert, vielleicht ist meine Frage auch nicht grad schlau, ich hoffe, ihr seht mir das nach einem äußerst anstrengenden Tag nach... Ich habe eine Detailtabelle in welcher zu einer Person verschiedene Stati gespeichert sind: Person1 S1 Person1 S2 Person1 S3 Person2 S1 Person2 S3 Person3 S1 Person3 S2 Ich möchte jetzt in einer Abfrage beispielsweise die Person ermitteln, welche den Status S1 und S3, aber nicht S2 hat, also im Beispiel Person2 Blackout :freak: Danke René |
Re: Where-Bedingung über einen Status
Hallo René,
mein Ansatz wäre das:
SQL-Code:
Grüße vom marabu
SELECT DISTINCT person FROM details WHERE status in ('S1', 'S3') AND NOT status = 'S2'
distinct missing |
Re: Where-Bedingung über einen Status
Ich würde vorschlagen:
Delphi-Quellcode:
select bla from bla where Status = 'S1' or Status = 'S3'
|
Re: Where-Bedingung über einen Status
@marabu: Ich glaub nicht, dass es das ist.
Als Resultat bekomme ich dann DS, welche den Status S1 oder S3 haben. Ich möchte aber nur welche mit S1 und! S3, aber auf keinen Fall S3. Das Problem ist, das bei solch einer einfachen Abfrage mir jede Zeile geliefert wird, in welcher die Bedingung stimmt. Im Ganzen verfälscht es aber mein Resultat. Zeile 1 S1 ist in S1, S3 --> wird ausgegeben Zeile 2 S2 --> wird nicht ausgegeben Zeile 3 S3 ist in S1, S3 --> wird ausgegeben Es wird mir also diese Person zurückgegeben (mit 2 Zeilen), obwohl sie den Status S2 hat! |
Re: Where-Bedingung über einen Status
@BeerBear
toller Name :zwinker: aber der Code funktioniert so trotzdem nicht |
Re: Where-Bedingung über einen Status
das sollte mit exists gehen:
select distinct(d.person) from details d where exists (select * from details where person=d.person and status = 'S1') and exists (select * from details where person=d.person and status = 'S3') and not exists (select * from details where person=d.person and status = 'S2') Cu, Frank |
Re: Where-Bedingung über einen Status
SQL-Code:
Kommt davon, wenn man zwischen Tür und Angel...
select distinct person from details
where person in (select person from details where status = 1) and person in (select person from details where status = 3) and not person in (select person from details where status = 2) |
Re: Where-Bedingung über einen Status
Ich glaub, ich blicke nicht ganz durch.
Kann denn eine Person mehrere Stati haben? EDIT: O.K. schon verstanden. hätte mir deine Datensätze mal genauer anschauen sollen. Sorry. :oops: |
Re: Where-Bedingung über einen Status
Was sind das für Leute, die erst ne Frage stellen und dann einfach Feierabend machen :evil: :zwinker:
Sorry, war echt fertig gestern. Jetzt wo ich die Lösung von marabu und dataspider lese, ist mir natürlich auch alles wieder klar. Ich persönlich bevorzuge die exists-Methode. Manchmal steht man absolut auf der Leitung :oops: Danke René |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz