Wpis z mikrobloga

Dopiero zaczynam się uczyć.
Mam napisać kwerendę, która pokaże wszystkie osoby w bazie, poza tymi, które mieszkają w Warszawie i mają zawód.

Napisałem coś takiego:

SELECT numer, imie, nazwisko, miejscowosc, zawod
FROM osoby
WHERE miejscowosc AND NOT miejscowosc="Warszawa";

jest okej, nie pokazuje mi nikogo z Warszawy, ale gdy zrobie coś takiego:

SELECT numer, imie, nazwisko, miejscowosc, zawod
FROM osoby
WHERE miejscowosc AND NOT (miejscowosc="Warszawa" & zawod="*");

to pokazuje mi wszystkie osoby z Warszawy z zawodem i tych bez. Co robię źle?

#access #sql #naukaprogramowania
  • 66
  • Odpowiedz
@Hybris: Ale to nie tak ma dzialac (,)
Powiem inaczej.
Mam sobie ludzi pracujacych i nie pracujacych z roznych miast, lacznie 23 osoby. Kwerenda ma zadzialac tak, ze Pokaze wszystkie osoby pracujace ze wszystkich miast i wszystkie pracujace osoby ze wszystkich miast POZA WARSZAWA. Czyli na 23 osoby tylko tego jednego bezrobotnego z warszawy powinno mi nie pokazywac.
  • Odpowiedz
@Czlowiek_Ludzki:

Po pierwsze. Skąd wiesz że zapytanie daje błędne wyniki? Skoro masz dostęp do wyników do wklej je tutaj.
Po drugie skoro jesteś początkującym to wklej to co masz w zadaniu a nie pisz własnym słowami.

Nie napisałeś ile jest tabel w bazie, jakie maja rekordy, kolumny. Opieramy się na tym co sam napisałeś, a skoro jestes początkujący to tutaj trzeba upatrywać tego że źle przekazałeś informacje. Wystarczy że jedna literka
  • Odpowiedz
@Hybris:

Po pierwsze. Skąd wiesz że zapytanie daje błędne wyniki? Skoro masz dostęp do wyników do wklej je tutaj.


Wiem, bo wklejam to co mi piszecie i widzę. Gdybym miał dostęp do gotowca to nawet bym nic tutaj nie pisał.

Po drugie skoro jesteś początkującym to wklej to co masz w zadaniu a nie pisz własnym słowami.


Napisz kwerendy które:

- pokazują wszystkie osoby w bazie z wyłączeniem tych które miaszkają
  • Odpowiedz
@Czlowiek_Ludzki:

- pokazują wszystkie osoby w bazie z wyłączeniem tych które miaszkają w Warszawie, ale mają pracę


Po prostu dodajesz do wcześniejszej kwarendy operator AND zeby dopisać drugi warunek

WHERE miejscowosc not like albo != albo <> 'Warszawa' AND drugi warunek

Drugi warunek brzmi " ale maja pracę" wiec w kolumnie zawod rekord musi byc widoczny wiec piszesz zawod is not null czyli nie jest pusty bo widnieje tam wykonywany zawod
  • Odpowiedz
@Hybris: Czyli mam rozumiec ze tez masz cos takiego jak na obrazku nizej?

Nie widzę innej możliwości z informacji które podałeś zrobienie tego zapytania.


W zipie masz napisane zadanie. Wczesniej pisalem jak powinno ono wygladac (a przynajmniej tak mi sie wydaje

Kwerenda ma zadzialac tak, ze Pokaze wszystkie osoby pracujace ze wszystkich miast i wszystkie pracujace osoby ze wszystkich miast POZA WARSZAWA. Czyli na 23 osoby tylko tego jednego bezrobotnego z
Czlowiek_Ludzki - @Hybris: Czyli mam rozumiec ze tez masz cos takiego jak na obrazku ...

źródło: comment_1587405180g0yIL6q1LDdRR4LhzQvinc.jpg

Pobierz
  • Odpowiedz
@Hybris: dopiero zauwazylem jaka glupote napisalem...

Pokaze wszystkie osoby pracujace ze wszystkich miast i wszystkie pracujace osoby ze wszystkich miast POZA WARSZAWA


maslo maslane....

zadanie jest takie jakie wyslalem w zipie:

pokazują wszystkie osoby w bazie z wyłączeniem tych które miaszkają w Warszawie, ale mają pracę

CZYLI (jak ja to rozumiem) kwerenda ma pokazac wszystkie osoby pracujace ze wszystkich miast OPROCZ OSOBY PRACUJACEJ MIESZKAJACEJ W WARSZAWIE (jej ma nie pokazywac) i
  • Odpowiedz
@Czlowiek_Ludzki: Tak i to co wkleiles jest wynikiem tego zapytania

SELECT [numer], [imie], Nazwisko, [wiek], [miejscowosc], [praca]
FROM osoby
WHERE [miejscowosc] not like 'Warszawa' And [praca] Is Not Null;

To jest rozwiązanie. 7 Osób.

Bo np rekord 4 Ma pracę czyli 2 warunek jest spelniony ale jest z Warszawy czyli 1 jest nie spelniony dlatego nie ma go w spisie. Rekord 16 to samo.
  • Odpowiedz