Prośba o pomoc w wygenerowaniu zapytania SQL

0

Drodzy Panowie i Panie,

baaardzo proszę o pomoc w prawidłowym zbudowaniu zapytania SQL

Chodzi o "Ilość rachunków zamkniętych od 30 września do 31 pazdziernika 2014"

kolumny: rachunek, stanumowy, dataumowy, czas

Małe wyjaśnienie: czas - data ostatniej modyfikacji rekordu (jeśli dataumowy jest Z, czas oznacza wtedy datę zamknięcia umowy)

stanumowy -> zwrócony wynik z bazy -> A, Z

A(AKTYWNA)

Z(ZAMKNIĘTA)

Nazwa tabeli: umowy

To co wymyśliłam w ciągu kilku godzin:

SELECT rachunek, stanumowy, dataumowy, czas

FROM umowy

WHERE dataumowy < '2014-11-01'

and stanumowy = 'Z'

or (czas > '2014-11-01')

Ale jest to niepoprawne zapytanie:| Wynik powinien zwracać 'czas > 2014

a zwraca dużo wcześniejszy 'czas', co jest błędnym wynikiem. Domyślam się, że błędny wynik jest przez to -> dataumowy < '2014-11-01' , ponieważ zwracane są umowy które były przed 2014 zawarte, co powoduje że czas jest <2014, a powinien być czas >2014

Mam wrażenie, że dataumowy "gryzie się" z kolumną 'czas', bo gdy dataumowy jest <2014 wtedy czas jest równiueż <2014 , nawet gdy wpiszę takie zapytanie jw ->(czas > '2014-11-01') .

Drugiego and'a nie mogę dać, a or chyba jest tu niepoprawny.

kombinuję z and'ami, na razie bez efektu

Mam nadzieję, że nie namąciłam :)

Z góry ogromnie dziękuję za pomoc, ja póki co nie mam na razie żadnych olśnień:(

1

Edit!
Chodziło mi oczywiście o czas a nie dataumowy.
Może tak:

SELECT rachunek, stanumowy, dataumowy, czas
FROM umowy
WHERE czas < '2014-11-01' AND czas > '2014-09-30' AND stanumowy = 'Z'
0

Dzięki szweszwe za odpowiedź.
Próbowałam z dwoma and'ami ale nie przeszło, incorrect syntax
Poza tym tu zwraca wszystkie 'dataumowy
Myśle że tu kluczowym jest 'czas' w tym przedziale 30 wrzesnia-31 październik, + stanumowy='Z'
Between 2014-09-01 AND 2014-10-31 AND stanumowy=Z -> tak też nie mogę zrobić bo wypluwa bład, dwa and'y , incorrect syntax
or też nie , bo zwróci mi inne stanumowy, pomieszane A(ktywne) z Z(zamknietymi), a muszą być same Z
i dalej jestem w kropce :(

0

Dwa AND nie mogą być przyczyną błędu składni. Najłatwiej by było gdybyś pokazała to zapytanie które Ci nie działa.

w zapytaniu napisanym przez "szweszwe" zmienił bym w where dataumowy na czas

0

Właśnie to nie działa
SELECT rachunek, czas, stanumowy, dataumowy
FROM umowy
WHERE stanumowy='Z'
AND czas between '2014-09-01' AND '2014-10-31';

incorrect syntax. myślę że to chodzi o dwa and'y?

Nawet jak zmienię końcówkę na:
WHERE stanumowy='Z'
AND czas >= '2014-09-01' AND czas <= '2014-10-31'

to tu też zwraca błąd:(

1 użytkowników online, w tym zalogowanych: 0, gości: 1