Datensatz Abfrage
Thomas D.
- datenbank
Tach alle miteinand
Habe folgendes vor. Ich möchte einen SELECT Befehl zusammen stellen der folgendes machen soll.
Die Datenbank hat mehrere Spalten (logisch) wenn nun in der Spalte abgerechnet ein ja drin steht oder die Spalte nicht leer ist, soll der Datensatz beim auflisten nicht mehr erscheinen.
Ich hätte da so eine Vorahnung mit NOT NULL = wird nicht aufgelistet.
Jemand eine Idee ??
Gruesse aus dem hohen Norden.
na einfach irgendwas á la:
SELECT lalala FROM table WHERE (spalte NOT ja) OR (spalte = NULL)
Kann nicht so stimmen, da kommen eher Fehler bei der Aúsgabe.
Ich möchte das wenn ja drin steht die Zeile nicht mehr ausgeworfen wird.
"SELECT * FROM touren WHERE Lieferscheinnummer='$suchen' AND (Abgerechnet = ja)";
wie sollte es richtig heissen ?
Morgen!
Na ja, du suchst halt nur die Sätze bei denen NICHT ja vorkommt. Dabei ist ja ein String --> Single Quotes und der Ungleich-Operator ist SQL ist <>. Vorher hattest du noch was gesagt von "oder der Wert soll leer sein, leer kannst du mit "xyz IS NULL" prüfen, das sollte aber durch <> mit abgedeckt sein (MEINE ICH, bin mir aber nicht sicher, NULL-Vergleiche sind immer etwas kitzelig, ausprobieren...)
"SELECT * FROM touren WHERE Lieferscheinnummer='$suchen' AND (Abgerechnet <> 'ja')";
Falls du bei Groß-/kleinschreibung nicht sicher bist:
"SELECT * FROM touren WHERE Lieferscheinnummer='$suchen' AND (UCASE(Abgerechnet) <> 'JA')";
MfG
Rouven
Hi,
a) eine _Datenbank_ hat eher _Tabellen_ und _Tabellen_ haben _Spalten_
(auch hie und da Felder genannt), wenn wir mal von einem relationalen
Datenbanksystem ausgehen.
b) wenn du in einer Spalte/ einem Feld einer Tabelle bestimmte Werte
erwartest, dann empfiehlt es sich dafür zu sorgen, dass nur diese
bestimmten Werte zugelassen werden. Stichwort CHECK / DEFAULT (falls
dein DBMS soetwas unterstützt). Deine "abgerechnet"-Spalte sieht sehr
nach true/false bzw. 0/1 -> Datentyp bit oder boolean
mit zeichenketten à la "ja" oder "nein" bzw. "" würde ich nicht arbeiten.
c) wenn du Datensätze abfragen willst, die in einer Spalte / einem
Feld NICHT gleich einem bestimmten Wert sind ergibt sich daraus schon
fast von selbst die WHERE-Klausel
z.b. (NOT spalte = wert) oder (spalte <> wert)
die genaue Syntax kannst du der Doku deines DBMS entnehmen. :-)
d) wenn du den Zustand von Inhalt = "ja" und spalte nicht leer als
Kriterium kombinieren willst, solltest du dies mithilfe von Klammern
bewerkstelligen: ((spalte = 'ja') OR (spalte not null))
wobei ich diese Herangehensweise nicht unbedingt als glücklich empfinde.
was ist, wenn mal abgerechnet = "nein" vorkommt ?
Hoffe, die Anregegungen bringen dich auf den Pfad der Tugend :-)
Ciao, Frank
Wow geile Erklärung. Was ich eigentlich nur möchte ist wenn irgentwas in der Spalte abgerechnet drin steht die Zeile nicht mehr angezeigt wird. Egal ob nun drin steht ja oder ein Datum.
Also ist in der Spalte abgerechnet ein Wert drin soll sie nicht angezeigt werden. Müsste doch eigentlich mit IS NOT NULL = nicht mehr anzeigen IS NULL = anzeigen. Frage mich im Moment nur welcher TYP die Spalte haben muesste um mit IS NOT NULL oder IS NULL arbeiten zu können.
Gruss Thomas
Hab mir im Moment damit beholfen das ich sage
SELECT * FROM touren WHERE Lieferscheinnummer='$suchen' AND Abgerechnet = ''";
damit wird auch nur dann der Datensatz angezeigt wenn er leer ist.
Vielleicht nicht die eleganteste Lösung aber funzt.