Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Hillfe zu SQL Abfrage gesucht (https://www.delphipraxis.net/179016-hillfe-zu-sql-abfrage-gesucht.html)

waldforest 9. Feb 2014 16:29

Datenbank: Firebird • Version: 2.1 • Zugriff über: ZEOS

Hillfe zu SQL Abfrage gesucht
 
Hallo,
ich habe eine Anwendung, die Artikelfarben vergleicht. Allerdings kommen die Farben in Kombinationen vor, z.B. gibt es die Farbe blau, aber auch die Farbe blau/orange, blau/gelb etc.

Die Farben habe sind alle in einer Tabelle mit entsprechender ID abgelegt und Farbtext. In der MAstertabelle ist die entsprechende ID hinterlegt.

Ich muss auf eine Farbtabelle gehen da die Anwendung mehrsprachig sein soll.

Bei der Abfrage auf die MAstertabelle sollen nun die Datensätze ausgegeben werden, welche die Farbe im String beinhalten.
So soll z.B. bei der Auswahl blau auch die ausgegeben werden, die z.B. blau/orange, blau/gelb sind.

Über die Farbenamen in der Mastertabelle als String hatte ich dies bisher relativ einfach, in dem ich mit LIKE abfrage.
sql.Add('SELECT * from Master as s where s.Farbe_1 Like ' + QUOTEDSTR(TRIM(ComboFarbe1.Text)+'%')

Bei der ID tu ich mich ein wenig schwer, wie muss der SQL nun aussehen ?

sql.Add('SELECT * from Master as s where s.Farbe_1_ID = ' + IntToStr(zrdnlyqry_Farbe1.FieldValues['Farbe_1_ID'])
So werden leider nur die gleichen Farben ausgegeben, es fehlen die Farbkombinationen.

Ich denke, dass ich die s_Farbe_ID mit der Farbtabelle über Join verbinden muss, stoße hier aber an meine Grenzen.

Würde mich über eine kleine Hilfestellung freuen.

mfg

waldforest 9. Feb 2014 17:23

AW: Hillfe zu SQL Abfrage gesucht
 
Habe das Problem, so glaub ich gelöst

SELECT m.*, f.* from Master as m inner Join farben as f on f.id = m.farbe_1 where f.farbe_d LIKE '+QUOTEDSTR(TRIM(ComboFarbe1.Text)+'%')

himitsu 9. Feb 2014 18:48

AW: Hillfe zu SQL Abfrage gesucht
 
Alternativ
Delphi-Quellcode:
'SELECT * FROM Master INNER JOIN Farben ON Farben.id = farbe_1 WHERE farbe_d LIKE '+QUOTEDSTR(TRIM(ComboFarbe1.Text)+'%')


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