AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Brauche Hilfe bei einer SQl-Abfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Brauche Hilfe bei einer SQl-Abfrage

Ein Thema von tr909 · begonnen am 22. Nov 2006 · letzter Beitrag vom 22. Nov 2006
Antwort Antwort
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#1

Brauche Hilfe bei einer SQl-Abfrage

  Alt 22. Nov 2006, 10:39
Datenbank: Access • Version: 2000 • Zugriff über: ADO
So, ich habe mal wieder ein Problem mit einer Abfrage. Verkürzt habe ich zwei Tabellen, in einer sind Daten zu einer Akte und in der anderen die zugehörigen Vorgänge. Nun möchte ich mit einer Abfrage diejenigen Akten herausbekommen in denen ein bestimmter Vorgang vorkommt und ein bestimmter anderer fehlt. Hier mal ein kurzes Bespiel :
Zitat:
AktenID, Name
1, Akte1
2, Akte2
3, Akte3

VorgangID, Akte, Inhalt
1, 1, E1
2, 1, E2
3, 2, E1
4, 2, E3
5, 3, E1
6, 3, E2
In jeder Akte soll, wenn ein Vorgang mit dem Inhalt E1 vorkommt auch der Vorgang mit dem Inhalt E2 vorkommen. In dem Beispiel soll also Akte2 ausgegeben werden, weil auf diese die bedingung ja nicht zutrifft. Ich hoffe mir kann da jemand helfen.

Folgendes hatte ich schon mal probiert, aber das funktioniert wohl nicht.
SQL-Code:
SELECT Akte.* FROM Akte
WHERE AktenID IN

(
SELECT Akte FROM VORGANG
  WHERE Inhalt = "E2" AND VorgangID IN
  (
   SELECT VorgangID from Vorgang
      WHERE Inhalt = "E1"
  )
)
Gruß
tr909
  Mit Zitat antworten Zitat
marabu

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

Re: Brauche Hilfe bei einer SQl-Abfrage

  Alt 22. Nov 2006, 10:55
Hi,

vielleicht reicht ja schon so etwas:

SQL-Code:
select *
from akten
where aktenid in (select akte from vorgaenge where inhalt = 'E1')
and aktenid not in (select akte from vorgaenge where inhalt = 'E2')
Getippt und nicht getestet.

Grüße vom marabu
  Mit Zitat antworten Zitat
tr909

Registriert seit: 5. Nov 2004
193 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Brauche Hilfe bei einer SQl-Abfrage

  Alt 22. Nov 2006, 11:10
Genau so funktioniert es. Besten Dank

Aber gibts evtl noch eine Variante die etwas schneller ist?

Gruß
tr909
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: Brauche Hilfe bei einer SQl-Abfrage

  Alt 22. Nov 2006, 13:28
Hallo,

evtl. ist folgendes schneller:
SQL-Code:
SELECT
  akten.name, vorgang.inhalt
FROM
  akten INNER JOIN vorgang ON akten.aktenid = vorgang.akte
WHERE
  vorgang.inhalt Not In ("E1","E2");
  Mit Zitat antworten Zitat
marabu

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

Re: Brauche Hilfe bei einer SQl-Abfrage

  Alt 22. Nov 2006, 14:55
Vielleicht reicht ja zur Beschleunigung auch die Bereitstellung eines Index auf den relevanten Feldern.
  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 13:58 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