Temat: SQL - query invt<>'x'?
Nie działa. I nie powinno byC OR poniewaz ma wywalic wszystkie rekordy w ktory INVT='S2' "I" INVTYPE='B1'.
Najlepiej załącz kilka rekordów, z których wybierasz.
Może Cię źle rozumiem ale rzuć okiem na przykład:
CREATE TABLE "public"."table1" (
"INVT" CHAR(10),
"pole2" CHAR(10),
"pole3" CHAR(10),
"INVTYPE" CHAR(10)
) WITH OIDS;
INSERT INTO "public"."table1" ("INVT", "pole2", "pole3", "INVTYPE")
VALUES ('S1', 'cc', 'dd', 'B1');
INSERT INTO "public"."table1" ("INVT", "pole2", "pole3", "INVTYPE")
VALUES ('S1', 'aa', 'bb', 'B2');
INSERT INTO "public"."table1" ("INVT", "pole2", "pole3", "INVTYPE")
VALUES ('S2', 'ee', 'ff', 'B1');
INSERT INTO "public"."table1" ("INVT", "pole2", "pole3", "INVTYPE")
VALUES ('S2', 'gg', 'hh', 'B2');
Wszystkie rekordy:
postgres=# select * from table1 \g
INVT | pole2 | pole3 | INVTYPE
------------+------------+------------+------------
S1 | cc | dd | B1
S1 | aa | bb | B2
S2 | ee | ff | B1
S2 | gg | hh | B2
(4 rows)
Rekordy, które mają pozostać:
postgres=# select * from table1 where "INVT" != 'S2' or "INVTYPE" != 'B1' \g
INVT | pole2 | pole3 | INVTYPE
------------+------------+------------+------------
S1 | cc | dd | B1
S1 | aa | bb | B2
S2 | gg | hh | B2
(3 rows)
Zatem masz w odpowiedzi rekordy, które spełniają Twój warunek. Tu masz rekord, który nie pojawia się, ponieważ INVT=S2 i INVTYPE=B1, i jak dobrze rozumiem miało go nie być:
postgres=# select * from table1 where "INVT" = 'S2' and "INVTYPE" = 'B1' \g
INVT | pole2 | pole3 | INVTYPE
------------+------------+------------+------------
S2 | ee | ff | B1
(1 row)
Pozdrawiam,
Zbyszek