jaki warunek - nazwa niewystępująca w określonym czasie

0

Proszę o pomoc w rozwiązaniu takiego problemu:
Mam tabelę, w której

nazwa data
aaa sierpień
bbb sierpień
ccc sierpień
aaa wrzesień
ccc wrzesień
ddd wrzesień
aaa pażdziernik
aaa listopad
Moje pytanie brzmi - jaki warunek stworzyć, aby w wyniku otrzymać nazwę która nie pojawiła się w ostatnich trzech miesiącach

Bardzo proszę o pomoc, gdyż sensownego nie przychodzi mi do głowy (zaćma jakaś czy coś)

0

W jakim języku?

0

MS Sql

1
SELECT 
      NAZWA
FROM
     T
WHERE
    MIESIAC IN ('WRZESIEŃ','PAŹDZIERNIK','LISTOPAD')
GROUP BY 
    NAZWA
HAVING
    COUNT(DISTINCT MIESIAC) < 3
1

Źle:

select
  t1.nazwa
from
  tabela t1
  left join (select top 3 nazwa from tabela order by data desc) t2 on t1.nazwa = t2.nazwa
where
  t2.nazwa is null

dobrze:

SELECT
  t1.nazwa
FROM
  table1 t1
  LEFT JOIN (
    select 
      distinct nazwa  
    from 
      table1 t1
      join (
        SELECT top 3 data FROM table1 ORDER BY DATA DESC
      ) t2 on t1.data = t2.data
  ) t2 ON t1.nazwa = t2.nazwa
WHERE
  t2.nazwa IS NULL

http://sqlfiddle.com/#!6/8f60f4/10

0

Dziękuję za pomysł rozwiązania problemu - działa

Pozdrawiam Janusz

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