AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Lookup mit mehreren Kategorien und Werten als AND-Abfrage
Thema durchsuchen
Ansicht
Themen-Optionen

Lookup mit mehreren Kategorien und Werten als AND-Abfrage

Ein Thema von Alien426 · begonnen am 8. Feb 2010 · letzter Beitrag vom 16. Feb 2010
 
Benutzerbild von Alien426
Alien426

Registriert seit: 21. Dez 2005
146 Beiträge
 
Turbo Delphi für Win32
 
#1

Lookup mit mehreren Kategorien und Werten als AND-Abfrage

  Alt 8. Feb 2010, 12:02
Datenbank: SQLite • Version: 3 • Zugriff über: Simple SQLite 3.0 wrapper
Hallo.

Ich beschreibe am besten erst mal meine Tabellen:

project: Enthält Handle (wie eine ID anzusehen) und Titel der Projekte
Code:
Handle            | Title              |
-------------------+---------------------+
Deus Ex 1          | Deus Ex            |
Beyond Good & Evil | Beyond Good & Evil |
categ: Enthalt die IDs und Namen der Kategorien
Code:
ID | Name   |
----+---------+
2   | Period |
3   | Genre  |
value: Entält mögliche Werte, die den Kategorien zugeordnet sind
Code:
ID | categID | Name      |
----+----------+------------+
3   | 3        | Adventure |
4   | 3        | RPG       |
15  | 2        | 2000-2004  |
pro_val: Die Lookup-Table, die alles vereinigt. Pro Projekt können alle Kategorien mit einem Wert belegt werden.
Code:
projectHandle | categID | valueID |
---------------+----------+---------+
Deus Ex 1      | 2        | 15      |
Deus Ex 1      | 3        | 4       |
Test          | 2        | 15      |
(Mir ist klar, dass ich auf categID verzichten könnte, da valueID fortlaufend ist.)

Jetzt möchte ich die Projekte so ähnlich wie in MS Query selektieren können. Es sollen nach bedarf Spalten und Zeilen hinzugefügt werden können. Die Spalten sollen mit AND verknüpft werden, die Zeilen mit OR. Die Kategorien und Werte (also alle 5 Elemente in Spalte 2 und 3) sind jeweils als Dropdowns realisiert.

Code:
+---------------+---------------+---------------+
|category      | Period       | Genre        |
|               | 2000-2004     | Action       |
|       or     | 2005-2009     |               |
+---------------+---------------+---------------+
Das Ergebnis in Pseude-SQL-Form:
... WHERE (Period='2000-2004AND Genre='Action') OR (Period='2005-2009') Also alle Projekte, die entweder dem Genre "Action" angehören und Anfang der 2000er erschienen sind oder Projekte, die Ende der 2000er erschienen sind.

Wenn ich pro Zeile nur einen Wert wähle klappt es, aber sobald ein AND kommt (natürlich) nicht, da ja ein Datensatz aus pro_val nicht zwei Kategorie/Wert-Anforderungen gleichzeitig erfüllen kann.

Wie mache ich die Abfrage in SQL?
  Mit Zitat antworten Zitat
 


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:15 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