Arek R.

Arek R. Chyba czas na zmianę
- SAP (BW, BPC,
FICO) Development
Te...

Temat: SQL - query invt<>'x'?

Dlaczego nie dziala mi takie query mimo tego, że rekordy tego typu są:

SELECT * FROM INVBSRELOAD WHERE INVBSRELOAD.INVT<>'S2' AND INVBSRELOAD.INVTYPE <> 'B1'

Jak wstawiam aby INVT='S2' i invtype='B1' to działa ale jak chcę tylko te rekordy, w których nie ma takiej kombinacji to chiny nie wychodzi.

konto usunięte

Temat: SQL - query invt<>'x'?

Arek R.:
Dlaczego nie dziala mi takie query mimo tego, że rekordy tego typu są:

SELECT * FROM INVBSRELOAD WHERE INVBSRELOAD.INVT<>'S2' AND INVBSRELOAD.INVTYPE <> 'B1'

Jak wstawiam aby INVT='S2' i invtype='B1' to działa ale jak chcę tylko te rekordy, w których nie ma takiej kombinacji to chiny nie wychodzi.
Witam,

A może zdradzisz jaka baza danych?

może zobacz tak:

SELECT * FROM table WHERE id NOT IN (id1, id2);

johnJohn R. edytował(a) ten post dnia 06.09.07 o godzinie 17:01

konto usunięte

Temat: SQL - query invt<>'x'?

SELECT * FROM INVBSRELOAD WHERE INVBSRELOAD.INVT<>'S2' AND INVBSRELOAD.INVTYPE <> 'B1'

moze

SELECT * FROM INVBSRELOAD WHERE INVBSRELOAD.INVT != 'S2' AND INVBSRELOAD.INVTYPE != 'B1'

Choc powyzsze rozwiazanie John'a tez powinno zadzialacPiotr Bednarski edytował(a) ten post dnia 06.09.07 o godzinie 17:30
Arek R.

Arek R. Chyba czas na zmianę
- SAP (BW, BPC,
FICO) Development
Te...

Temat: SQL - query invt<>'x'?

SQL 2000. Kurcze nie działają Wasze rozwiązania.
Co ciekawe na innych tabelach wszystko działa bez problemu a na tej nie. Pola mają takie same właściwości.
Jacek Ołowiak

Jacek Ołowiak kierownik zespołu IT

Temat: SQL - query invt<>'x'?

Arek R.:
SQL 2000. Kurcze nie działają Wasze rozwiązania.
Co ciekawe na innych tabelach wszystko działa bez problemu a na tej nie. Pola mają takie same właściwości.
sprobuj NOT LIKE zamiast <> czy !=

podeslij jeszcze describe tabelki i przykład rekordu ktory spełnia warunekJacek Ołowiak edytował(a) ten post dnia 06.09.07 o godzinie 23:41
Arek R.

Arek R. Chyba czas na zmianę
- SAP (BW, BPC,
FICO) Development
Te...

Temat: SQL - query invt<>'x'?

Jacek O.:
Arek R.:
SQL 2000. Kurcze nie działają Wasze rozwiązania.
Co ciekawe na innych tabelach wszystko działa bez problemu a na tej nie. Pola mają takie same właściwości.
sprobuj NOT LIKE zamiast <> czy !=

podeslij jeszcze describe tabelki i przykład rekordu ktory spełnia warunek

Nie działa.

To jest rekord, który nie powinien być wybrany, który moje query powinno ominąć:
BELNR INVT SFAKN INVTYPE
0929500162 S2 0929117061 B1

tabelka:
Column Name DataType Length Allow Null

1 BELNR char 35 1
0 INVT char 35 1
0 SFAKN char 35 1
0 INVTYPE char 35 1

Co ciekawe:
SELECT * FROM INVBSRELOAD WHERE INVBSRELOAD.INVT = 'S2' AND INVBSRELOAD.INVTYPE <> 'B1'

działa poprawnie.

Może coś jest nie tak z polem INVTYPE.
Najpierw tworzę tabele z 3 polami, natępnie do tej tabeli (invbsreload) dodaje (ALTER) pole INVTYPE.
Nigdy wcześniej takie problemu nie miałem:-(Arek R. edytował(a) ten post dnia 06.09.07 o godzinie 23:51
Zbigniew R.

Zbigniew R. Kierownik Działu IT,
SKOK Kujawiak

Temat: SQL - query invt<>'x'?

Arek R.:
Dlaczego nie dziala mi takie query mimo tego, że rekordy tego typu są:

SELECT * FROM INVBSRELOAD WHERE INVBSRELOAD.INVT<>'S2' AND INVBSRELOAD.INVTYPE <> 'B1'

Jak wstawiam aby INVT='S2' i invtype='B1' to działa ale jak chcę tylko te rekordy, w których nie ma takiej kombinacji to chiny nie wychodzi.

Panowie, nie w tą stronę idzie dyskusja ;) Wszystkie wymienione konstrukcje zapytań będą działać tylko, że:

Jeśli chcemy osiągnąć wynik, który nie będzie zawierał takiej kombinacji to zamiast AND trzeba użyć OR i to będzie to o co chodzi autorowi wątku.
Arek R.

Arek R. Chyba czas na zmianę
- SAP (BW, BPC,
FICO) Development
Te...

Temat: SQL - query invt<>'x'?

Zbigniew R.:
Arek R.:
Dlaczego nie dziala mi takie query mimo tego, że rekordy tego typu są:

SELECT * FROM INVBSRELOAD WHERE INVBSRELOAD.INVT<>'S2' AND INVBSRELOAD.INVTYPE <> 'B1'

Jak wstawiam aby INVT='S2' i invtype='B1' to działa ale jak chcę tylko te rekordy, w których nie ma takiej kombinacji to chiny nie wychodzi.

Panowie, nie w tą stronę idzie dyskusja ;) Wszystkie wymienione konstrukcje zapytań będą działać tylko, że:

Jeśli chcemy osiągnąć wynik, który nie będzie zawierał takiej kombinacji to zamiast AND trzeba użyć OR i to będzie to o co chodzi autorowi wątku.

Nie działa. I nie powinno byC OR poniewaz ma wywalic wszystkie rekordy w ktory INVT='S2' "I" INVTYPE='B1'.
Zbigniew R.

Zbigniew R. Kierownik Działu IT,
SKOK Kujawiak

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
Jacek Ołowiak

Jacek Ołowiak kierownik zespołu IT

Temat: SQL - query invt<>'x'?

nie podawaj przykladow pod posgres jesli problem dotyczy mssql (sql !=sql)

Arek:

SELECT INVT, INVTYPE, BELNR, SFAKN
FROM INVBSRELOAD
WHERE (NOT (INVT LIKE 'S2')) OR (NOT (INVTYPE LIKE 'B1'))
Zbigniew R.

Zbigniew R. Kierownik Działu IT,
SKOK Kujawiak

Temat: SQL - query invt<>'x'?

Jacek O.:
nie podawaj przykladow pod posgres jesli problem dotyczy mssql (sql !=sql)

Postgresa mam akurat pod ręką, poza tym chodziło mi o to nieszczęsne OR. ;) A tak z innej beczki - skąd wiesz, że chodziło o MSSQL?
Arek R.

Arek R. Chyba czas na zmianę
- SAP (BW, BPC,
FICO) Development
Te...

Temat: SQL - query invt<>'x'?

Jacek O.:
nie podawaj przykladow pod posgres jesli problem dotyczy mssql (sql !=sql)

Arek:

SELECT INVT, INVTYPE, BELNR, SFAKN
FROM INVBSRELOAD
WHERE (NOT (INVT LIKE 'S2')) OR (NOT (INVTYPE LIKE 'B1'))

Ooo jasny gwint! Działa!
Jacek jak będziesz w Warszawie to zapraszam na dobrą kawę do Nestle i czekoladę.

A pozostałym również BARDZO dziękuję!
Jacek Ołowiak

Jacek Ołowiak kierownik zespołu IT

Temat: SQL - query invt<>'x'?

nie ma problemu
Bartosz Ślepowronski

Bartosz Ślepowronski Problem? Jaki
problem?

Temat: SQL - query invt<>'x'?

Zbigniew R.:
Postgresa mam akurat pod ręką, poza tym chodziło mi o to nieszczęsne OR. ;) A tak z innej beczki - skąd wiesz, że chodziło o MSSQL?

Pewnie z posta autora wątku.
Zbigniew R.

Zbigniew R. Kierownik Działu IT,
SKOK Kujawiak

Temat: SQL - query invt<>'x'?

Just U.:
Zbigniew R.:
Postgresa mam akurat pod ręką, poza tym chodziło mi o to nieszczęsne OR. ;) A tak z innej beczki - skąd wiesz, że chodziło o MSSQL?

Pewnie z posta autora wątku.

SQL2000, sorry nie zauważyłem.

Następna dyskusja:

[MySQL] SQL Query Tuning




Wyślij zaproszenie do