Datenbank: MSSQL • Version: 2005 • Zugriff über: DelphiQuery
SQL Anweisung klappt nicht ganz..
Hallo Leute,
habe ein kleines Problem, wahrscheinlich ist das nur ein einfacher Denkfehler in meiner gebildeten SQL-Anweisung:
SQL-Code:
Ich möchte das ein Textteil "Muster" in den Feldern: VORGANGNR, BETREFF, FREMDAUFTNR, FREMDKOMNR
SELECT *
FROM dbo.VORGANG WHERE BELEGART = 'L' AND UPPER(VORGANGNR) LIKE '%'+UPPER('Muster')+'%' OR UPPER(BETREFF) LIKE '%'+UPPER('Muster')+'%' OR UPPER(FREMDEAUFTNR) LIKE '%'+UPPER('Muster')+'%' OR UPPER(FREMDEKOMNR) LIKE '%'+UPPER('Muster')+'%' gesucht werden (Filter) aber eben nur die Daten angezeigt werden wo das Feld "BELEGART = 'L'" ist. Irgendwie klappt das aber nicht er zeigt immer alle möglichen Inhalte BELEGART an. Kann ich das so überhapt angehen, oder muss ich hier eine Unterabfrage benutzen? Gruss Thorsten |
Re: SQL Anweisung klappt nicht ganz..
Hallo,
du musst das doch klammern
SQL-Code:
Ansonsten wirkt das OR immer.
SELECT *
FROM dbo.VORGANG WHERE BELEGART = 'L' AND ( UPPER(VORGANGNR) LIKE '%'+UPPER('Muster')+'%' OR UPPER(BETREFF) LIKE '%'+UPPER('Muster')+'%' OR UPPER(FREMDEAUFTNR) LIKE '%'+UPPER('Muster')+'%' OR UPPER(FREMDEKOMNR) LIKE '%'+UPPER('Muster')+'%' ) Heiko |
Re: SQL Anweisung klappt nicht ganz..
So könnte es eventuell auch funktionieren :
SQL-Code:
SELECT *
FROM dbo.VORGANG WHERE BELEGART = 'L' AND VORGANGNR containing 'Muster' OR BETREFF containing 'Muster') OR FREMDEAUFTNR containing 'Muster' OR FREMDEKOMNR containing 'Muster'; |
Re: SQL Anweisung klappt nicht ganz..
CONTAINING ist Firebird-Dialekt, bei MS-SQL heißt es CONTAINS. Aber auch dabei müssen die Klammern gesetzt werden: AND ist eine engere Verknüpfung als OR.
Gruß und guten Rutsch! Jürgen |
Re: SQL Anweisung klappt nicht ganz..
Zitat:
Ergo würde ich obige Lösung mit der Klammerung präferieren. |
Re: SQL Anweisung klappt nicht ganz..
Hallo Heiko.
Zitat:
Ich teste es nochmal, ansonsten teste ich mal die Lösung von RWarnecke. Erstmal Danke für die schnellen Antworten, ich wünsche euch allen "Ein frohes neues Jahr und einen guten Rutsch" Gruß Thorsten Aber ich teste es noch mal, notfalls |
Re: SQL Anweisung klappt nicht ganz..
Hm, eigentlich sollte die Query schon funktionieren. Hast du Sie nochmals getestet? Wie schickst du die Query an die DB?
|
Re: SQL Anweisung klappt nicht ganz..
Hallo Heiko.
Zitat:
Vielen Dank Gruß Thorsten |
Re: SQL Anweisung klappt nicht ganz..
Zitat:
SQL-Code:
Danke nochmal an Jürgen. Ich hoffe jetzt habe ich nicht wieder etwas übersehen. :duck:
SELECT *
FROM dbo.VORGANG WHERE BELEGART = 'L' AND (VORGANGNR contains 'Muster' OR BETREFF contains 'Muster' OR FREMDEAUFTNR contains 'Muster' OR FREMDEKOMNR contains 'Muster'); Auch von mir einen guten Rutsch ins neue Jahr. :party: |
Re: SQL Anweisung klappt nicht ganz..
Hallo,
geht doch ;) Ich denke dabei immer an Delphi, also am besten noch ne Klammer um BELEGART = 'L', auch wenn es jetzt schon geht.
SQL-Code:
SELECT *
FROM dbo.VORGANG WHERE (BELEGART = 'L') AND (VORGANGNR contains 'Muster' OR BETREFF contains 'Muster' OR FREMDEAUFTNR contains 'Muster' OR FREMDEKOMNR contains 'Muster'); Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 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