Zapytanie SQL

0

Witam.

W uproszeniu, mam w bazie tabelę Transakcje, w której istotne kolumny to:

  • towar
  • kontrahent
  • data

Oczywiście, jest też mnóstwo innych pól i tabel.

Chcę (mówiąc ludzkim językiem), wyświetlić listę transakcji, wykonanych po 1 kwietnia, w których towar nie występuje na żadnej transakcji dla tego kontrahenta, wykonanej przed 1 kwietnia.

Innymi słowy: szukam sytuacji, gdy klient zaczął kupować towar, którego nigdy wcześniej nie kupował.

Zacząłem:

SELECT towar, kontrahent, data
FROM transakcje
WHERE 
data > '2010-04-01' AND
towar NOT IN
( SELECT towar FROM transakcja, WHERE data < '2010-04-01' AND kontrahent = !!!!!!!!!!!!!!! ) 

W miejscu, gdzie wstawiłem !!!!!!! poległem. Co powinienem tam wpisać, żeby logicznie wyszedł warunek (kontrahent z podzapytania)=(kontrahent z zapytania głównego) ?

Dziękuję za wszelką pomoc.

Mam nadzieję, że w miarę jasno opisałem, o co mi chodzi. Gdyby jednak opis był trochę mętny, to proszę napisać :).

0

chodzi Ci chyba o coś takiego:

SELECT t1.towar, t1.kontrahent, t1.data
FROM transakcje as t1
WHERE
t1.data > '2010-04-01' AND
t1.towar NOT IN
( SELECT towar FROM transakcja, WHERE data < '2010-04-01' AND kontrahent = t1.kontrahent )

Przyjmuję, że tabela transakcja w podzapytaniu to ta sama tabela co transakcje w zapytaniu głównym.

0

Zgadza się. Dziękuję!

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