Delphi-PRAXiS
Seite 2 von 8     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi bin am verzweifeln... select abfragen miteinander kombinieren??? (https://www.delphipraxis.net/161073-bin-am-verzweifeln-select-abfragen-miteinander-kombinieren.html)

Serienchiller 15. Jun 2011 13:09

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
ich krieg ja schon beim 2. diese fehlermeldung. da brauch ich aber die zwischentabellen. ohne die geht es leider nicht, aber irgendwas mache ich da syntaktisch falsch ich weiß bloß nicht was?

ich weiß ich bin ein schwieriger fall aber bin ja noch relativ anfänger...

DeddyH 15. Jun 2011 13:17

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
Der 2. (if p then) ist ja bereits der Subselect, da fehlt doch noch etwas. Wie gesagt, lass Dir das komplette Statement zur Kontrolle ausgeben.
Delphi-Quellcode:
ShowMessage(dm.dsetbilder.SelectSQL.Text); //ggf. erstmal ein exit; hierhin
dm.dsetbilder.Open;
Übrigens gibt es auch Delphi-Tags (die Schaltfläche mit dem Helm), dann sind auch die Hervorhebungen dabei.

p80286 15. Jun 2011 13:21

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
Wie wäre es denn mit einem View?
etwa so:

Code:
select 'Bild',Bild.ID,Bild.Name from Bild
union
select 'Tag',Tag.ID,Tag.Name from Tag
union
select 'Prog',Programme.ID,Programme.Name
so könnte man ein einheitliches Mäntelchen über die unterschiedlichen Tabellen legen.

Gruß
K-H

Serienchiller 15. Jun 2011 13:28

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
@p80286
ich suche ja nicht in den mastertabellen sondern in den zwischentabellen, deswegen ist das ja so schwierig.

@deddyh
und ich kann mir den befehl gar nicht ausgeben lassen weil er sich schon gar nicht adden lässt :(

DeddyH 15. Jun 2011 13:32

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
Wie, lässt sich nicht adden? In diesem Moment ist das doch nichts anderes als eine stinknormale Stringliste. Zur Not kannst Du aber auch temporär eine solche erzeugen, das Statement dort zusammenbauen, Dir das Ergebnis ausgeben lassen, bei Gefallen dem SQL der Query zuweisen und diese ausführen.

Serienchiller 15. Jun 2011 13:40

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
ok war mein fehler. habs jez in ein memo gepackt

SELECT * FROM Bilder b
WHERE name containing upper(:WERT)
OR (select * from bilder c where c.bid in (select c1.bid from BILDER c1 join zwbilderprogramme z on z.bildid = c1.bid join programme t on t.pid = z.programmid where Upper(t.namep) containing UPPER(:WERT)))

DeddyH 15. Jun 2011 13:42

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
Das sieht irgendwie unnötig kompliziert aus. Was genau bezweckst Du denn mit dem Subselect? Außerdem: fehlt da nicht ein EXISTS vor der Klammer?

Serienchiller 15. Jun 2011 13:56

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
ich bin leider noch nicht so firm in sql daher frage ich ja. diese struktur muss sein da ich die verbindung über zwtabelle und mastertabelle herstellen muss. nur wie ich die beiden selects syntaktisch richtig miteinander verknüpfe, weiß ich nicht. jede für sich alleine tut genau was sie soll.

DeddyH 15. Jun 2011 14:03

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
So soll es doch am Ende aussehen, oder?
SQL-Code:
SELECT * FROM bilder b
WHERE UPPER(b.name) CONTAING UPPER(:WERT)
OR b.bid IN ( --b.bid IN fehlt bei Dir
  SELECT * FROM bilder c
  WHERE c.bid IN (
    SELECT c1.bid FROM BILDER c1 
    JOIN zwbilderprogramme z ON z.bildid = c1.bid
    JOIN programme t ON t.pid = z.programmid
    WHERE UPPER(t.namep) CONTAING UPPER(:WERT)
    )
  )
[edit] Müsste das nicht das Gleiche sein wie
SQL-Code:
SELECT * FROM bilder b
WHERE UPPER(b.name) CONTAING UPPER(:WERT)
OR EXISTS ( 
  SELECT * FROM zwbilderprogramme z
  JOIN programme t ON t.pid = z.programmid
  WHERE z.bildid = b.bid
  AND UPPER(t.namep) CONTAING UPPER(:WERT)
  )
:?:[/edit]

Serienchiller 15. Jun 2011 14:17

AW: bin am verzweifeln... select abfragen miteinander kombinieren???
 
Delphi-Quellcode:
SELECT * FROM Bilder b
WHERE name containing upper(:WERT)
 OR b.bid IN ( SELECT * FROM bilder c WHERE c.bid IN ( SELECT c1.bid FROM BILDER c1 JOIN zwbilderprogramme z ON z.bildid = c1.bid JOIN programme t ON t.pid = z.programmid WHERE UPPER(t.namep) CONTAINing UPPER(:WERT)))
jetzt kriege ich den fehler: count of column list and variable list do not match


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:42 Uhr.
Seite 2 von 8     12 34     Letzte »    

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