AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Syntax, Vergleich mit 2 Bedingungen
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Syntax, Vergleich mit 2 Bedingungen

Ein Thema von haentschman · begonnen am 21. Jun 2008 · letzter Beitrag vom 21. Jun 2008
 
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.303 Beiträge
 
Delphi 12 Athens
 
#1

SQL Syntax, Vergleich mit 2 Bedingungen

  Alt 21. Jun 2008, 10:47
Datenbank: firebird • Version: 2.0 • Zugriff über: Zeos
Hallo an alle SQL Experten...

ich versuche mich verständlich auszudrücken...was nicht einfach wird.
Mich interressiert ob nachfolgendes überhaupt möglich ist bzw. die Syntax eines solchen Ausdruckes.

Status 3 = Tätigkeit unerledigt (Status)
Verbrauch 1 = Verbrauchsmaterial ja (Status)

gegeben: (funktioniert wenn Edit12.Text eindeutig ist)
Delphi-Quellcode:
ZQueryFilter.SQL.Text:= 'select ANLAGE,BEZEICHNUNG,ART,QUALITAT,GROSSE,MENGE ';
ZQueryFilter.SQL.Add('from FILTEREINSATZ where VERBRAUCH = 1 and ANLAGE = (select ANLAGE from WARTUNGL where NUMMER = :Nummer) ');
ZQueryFilter.SQL.Add('and BEZEICHNUNG in (select BEZEICHNUNG from WARTUNGP where TATIGKEIT = :Tatigkeit and STATUS = 3 and NUMMER = :Nummer) ');
ZQueryFilter.SQL.Add('order by ANLAGE');
ZQueryFilter.ParamByName('Nummer').Value:= Edit12.Text;
ZQueryFilter.ParamByName('Tatigkeit').Value:= '3205 * Filtermedium wechseln';
ZQueryFilter.Open;
... durch die eindeutige Nummer erhalte ich die BEZEICHNUNG eindeutig (ähnlich distinct) da die Bezeichnung nur einmalig pro Anlage existiert und somit auch den Datensatz aus FILTEREINSATZ eindeutig.

...jetzt kommts

...ist Edit12.Text nicht eindeutig (z.B.leer) sollen alle Filter aller Anlagen geladen werden (ausgenommen Filter deren zugeordnete Tätigkeit erledigt ist.

...Syntaxfehler (einer mehrerer Versuche)
Delphi-Quellcode:
ZQueryFilter.SQL.Text:= 'select ANLAGE,BEZEICHNUNG,ART,QUALITAT,GROSSE,MENGE ';
ZQueryFilter.SQL.Add('from FILTEREINSATZ where VERBRAUCH = 1 ');
ZQueryFilter.SQL.Add('and BEZEICHNUNG,ANLAGE in (select A.BEZEICHNUNG,B.ANLAGE from A.WARTUNGP,B.WARTUNGL where A.TATIGKEIT = :Tatigkeit and A.STATUS = 3 and B.NUMMER = A.NUMMER) ');
ZQueryFilter.SQL.Add('order by ANLAGE');
ZQueryFilter.ParamByName('Tatigkeit').Value:= '3205 * Filtermedium wechseln';
ZQueryFilter.Open;
... da jetzt die Bezeichnungen mehrfach vorkommen können muß ich den "Vergleich" mit der Anlagennummer koppeln.
Vergleich mit 2 Feldern

im Prinzip dieser Part: and BEZEICHNUNG,ANLAGE

einfach mit and BEZEICHNUNG and ANLAGE geht nicht, da die Bezeichnung durch andere Anlagen identisch vorkommen kann und die Anlage sowieso. Eindeutig kann es nur sein, wenn ich beide in Verbindung betrachte.

...Nachfragen habt Ihr sowieso...

Danke für Eure Ideen.
  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 16:11 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