![]() |
Datenbank: Firebird • Version: 2.1 • Zugriff über: TQuery
SQL-Abfrage funktioniert nicht so richtig
Hallo, Habe eine Artikeltabelle in der u.A. folgende Eigenschaften stehe:
ARTNR | ROHWARENR | PRODUKTION | LIEFERMENGE | STATUS | ----------------------------------------------------------- 001 | 1212 | 0 | 0 |produziert | ----------------------------------------------------------- 002 | 1212 | 0 | 0 | Null | ----------------------------------------------------------- 003 | 1212 | 0 | 0 |produziert | Hoffe, die Tabelle ist lesbar. Meine Abfrage lautet: select * from ARTIKEL where ROHWARENR = 1212 AND PRODSTATUS <> '+ QuotedStr('produziert') + ' and PRODUKTION = 0 and LIEFERMENGE = 0 Ergebnis wird in einer Tabelle dargestellt. Leider in diesem Fall gar nichts. Wenn, statt 'Null' 'leer' stehen würde, dann funktioniert die Abfrage. Was mache ich hier falsch. Danke, Luckner |
AW: SQL-Abfrage funktioniert nicht so richtig
SQL-Code:
select * from ARTIKEL where ROHWARENR = 1212 AND iif( PRODSTATUS is not null, PRODSTATUS, '') <> '''produziert''' and PRODUKTION = 0 and LIEFERMENGE = 0;
|
AW: SQL-Abfrage funktioniert nicht so richtig
Wenn NULL = '' entspricht, dann sollte es so funktionieren.
SQL-Code:
.
select * from ARTIKEL where ROHWARENR = 1212 AND ((PRODSTATUS <> 'produziert') OR (PRODSTATUS IS NULL)) and PRODUKTION = 0 and LIEFERMENGE = 0
EDIT: Roter Kasten wo bist du:?: :roll::roll::roll: OK. Den Firebird Dialekt kenne ich jetzt nicht so genau. Habe mich mal an MSSQL angelehnt. |
AW: SQL-Abfrage funktioniert nicht so richtig
anstatt <> nehme man: is distinct from
oder halt coalesce(PRODSTATUS, '') Frank Hab aber keine Ahnung, was FB 2.1 schon versteht... |
AW: SQL-Abfrage funktioniert nicht so richtig
Entweder ein ((PRODSTATUS IS NULL OR) OR (PRODSTATUS <> '+ QuotedStr('produziert') + ')) draus machen oder mit ISNULL/COALESCE abfragen, weiß nicht genau was es bei Firebird da gibt.
|
AW: SQL-Abfrage funktioniert nicht so richtig
Mach vielleicht mal ein Trim um das STATUS-Feld. Je nachdem welchen Datentyp die Spalte hat füllt FB gerne den nicht gebrauchten Platz mit Leerzeichen auf, sodass dann in der Tabelle statt
Code:
"produziert"
Code:
steht.
"produziert "
|
AW: SQL-Abfrage funktioniert nicht so richtig
Zitat:
|
AW: SQL-Abfrage funktioniert nicht so richtig
Oh hab die Frage falsch verstanden.
Dann gibt es eine einfache Lösung: Zitat:
![]() |
AW: SQL-Abfrage funktioniert nicht so richtig
Danke Euch. Habe den Vorschlag vom Aviator genommen und es funktioniert. Habe nicht gedacht, dass '<> produziert' nicht automatisch 'is Null' einschliesst.
Gruß, Luckner |
AW: SQL-Abfrage funktioniert nicht so richtig
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:58 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz