AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [SQL] Brauche Hilfe beim basteln einer Abfrage
Thema durchsuchen
Ansicht
Themen-Optionen

[SQL] Brauche Hilfe beim basteln einer Abfrage

Ein Thema von tr909 · begonnen am 11. Jan 2006 · letzter Beitrag vom 11. Jan 2006
Antwort Antwort
tr909

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

[SQL] Brauche Hilfe beim basteln einer Abfrage

  Alt 11. Jan 2006, 10:42
Datenbank: Access • Version: 2000 • Zugriff über: ADO
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
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#2

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage

  Alt 11. Jan 2006, 11:30
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.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
tr909

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

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage

  Alt 11. Jan 2006, 11:41
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
  Mit Zitat antworten Zitat
Benutzerbild von tomsel
tomsel

Registriert seit: 8. Dez 2005
Ort: am Chiemsee
304 Beiträge
 
Delphi 7 Professional
 
#4

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage

  Alt 11. Jan 2006, 11:44
Ah, ja. Es ist nicht die aktuelle Anzahl, sondern ein Soll-Wert. Dann ist alles klar.
Ein Experte ist ein Mann, der hinterher genau sagen kann, warum seine Prognose nicht gestimmt hat. (Winston Churchill)
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

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

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage

  Alt 11. Jan 2006, 11:50
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
Frank Reim
  Mit Zitat antworten Zitat
tr909

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

Re: [SQL] Brauche Hilfe beim basteln einer Abfrage

  Alt 11. Jan 2006, 15:08
Das ist genau das was ich brauchte. Vielen Dank für die schnelle Hilfe.

Gruß
tr909
  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 02:24 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