Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi [SQL] Brauche Hilfe beim basteln einer Abfrage (https://www.delphipraxis.net/60701-%5Bsql%5D-brauche-hilfe-beim-basteln-einer-abfrage.html)

tr909 11. Jan 2006 09:42

Datenbank: Access • Version: 2000 • Zugriff über: ADO

[SQL] Brauche Hilfe beim basteln einer Abfrage
 
Hallo.
Ich habe Probleme bei einer SQL-Abfrage. Evtl kann mir ja jemand von euch helfen.

Es geht um folgendes.
Es gibt eine Tabelle in der Beiträge gespeichert werde und in einer zweiten "Anhänge" dazu.
Die Struktur sieht vereinfacht so aus.

Beitragstabelle:
textid,text,anzahltypXY

Anhangstabelle
anid,filename,typ

Wenn nun ein Anhang zu einem Text gespeichert wird, wird die textid als anid übernommen.

anzahltypXY bezeichnet die Anzahl der anlagen eines bestimten types (z.B. 'Bild') die vorhanden sein sollen.

Als Abfrage hätte ich nun gerne folgendes.

Gib mir für alle Einträge in der Beitragstabelle die aus, für die gilt : anzahltypXY <> "Anzahl der Einträge in der Anhangstabelle" WHERE anid=textid AND typ='Bild'

Ich hoffe ich habe mich halbwegs verständlich ausgedrückt.

Was ich schon habe ist :

Select * from anlagen where anlid = textid
(damit bekomme ich alle Anlagen zu einem ausgewählten Text)

select count(*) from anlagen where typ = 'Bild'
(Anzahl der Anlagen vom typ Bild)

Ein Problem ist nun in der Abfrage alle Einträge zu "durchlaufen" und zu gucken ob die gewünschten Bedingungen erfüllt sind.
Wäre schön wenn das direkt mit SQL geht.

Gruß
tr909

tomsel 11. Jan 2006 10:30

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage
 
Hi,

Wenn es keinen besonderen Grund gibt, die Anzahl der verbundenen anlagen in der Haupttabelle zu speichern, dann TUE DIES NICHT. Das ist ja geradezu eine Einladung für unseren Erzfeind, Gevatter Inkonsistenz. Wenn die Anlagen-Anzahl in einer Abfrage benötigt wird, sollte man diese durch Count ermitteln.

tr909 11. Jan 2006 10:41

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage
 
Der Grund für das speichern der Anzahl ist, das diese angibt wieviele Anlagen dieses Typs vorhanden sein sollen.
Mit der Abfrage soll überprüft werden, ob die geforderte Anzahl auch wirklich vorhanden ist.

mfg
tr909

tomsel 11. Jan 2006 10:44

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage
 
Ah, ja. Es ist nicht die aktuelle Anzahl, sondern ein Soll-Wert. Dann ist alles klar.

dataspider 11. Jan 2006 10:50

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage
 
Hi,

sollte in etwa so aussehen:
SQL-Code:
select * from beitrag where
anzahltypbild <> (select count(*) from anlagen where anlid=textid and typ='Bild')
Cu, Frank

tr909 11. Jan 2006 14:08

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage
 
Das ist genau das was ich brauchte. Vielen Dank für die schnelle Hilfe.

Gruß
tr909


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:57 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