AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Where-Bedingung über einen Status
Thema durchsuchen
Ansicht
Themen-Optionen

Where-Bedingung über einen Status

Ein Thema von smudo · begonnen am 17. Nov 2005 · letzter Beitrag vom 18. Nov 2005
Antwort Antwort
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#1

Where-Bedingung über einen Status

  Alt 17. Nov 2005, 16:40
Datenbank: Interbase • Version: 6.1 • Zugriff über: egal
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

Danke

René
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Where-Bedingung über einen Status

  Alt 17. Nov 2005, 16:48
Hallo René,

mein Ansatz wäre das:

SELECT DISTINCT person FROM details WHERE status in ('S1', 'S3') AND NOT status = 'S2' Grüße vom marabu

distinct missing
  Mit Zitat antworten Zitat
Benutzerbild von BeerBear
BeerBear

Registriert seit: 23. Aug 2005
Ort: Lübeck
85 Beiträge
 
#3

Re: Where-Bedingung über einen Status

  Alt 17. Nov 2005, 16:52
Ich würde vorschlagen:

select bla from bla where Status = 'S1or Status = 'S3'
Der Fehler sitzt immer vor dem Bildschirm.
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Where-Bedingung über einen Status

  Alt 17. Nov 2005, 16:59
@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!
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Where-Bedingung über einen Status

  Alt 17. Nov 2005, 17:00
@BeerBear

toller Name aber der Code funktioniert so trotzdem nicht
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider
Online

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Where-Bedingung über einen Status

  Alt 17. Nov 2005, 17:17
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
Frank Reim
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Where-Bedingung über einen Status

  Alt 17. Nov 2005, 17:19
SQL-Code:
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)
Kommt davon, wenn man zwischen Tür und Angel...
  Mit Zitat antworten Zitat
Benutzerbild von BeerBear
BeerBear

Registriert seit: 23. Aug 2005
Ort: Lübeck
85 Beiträge
 
#8

Re: Where-Bedingung über einen Status

  Alt 17. Nov 2005, 17:40
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.
Der Fehler sitzt immer vor dem Bildschirm.
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Where-Bedingung über einen Status

  Alt 18. Nov 2005, 08:23
Was sind das für Leute, die erst ne Frage stellen und dann einfach Feierabend machen

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

Danke

René
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz