1

Temat: Proszę o pomoc

Witam wszystkich mam taki o to problem

mam tabelę kredyciki

Id | ID_klient | imie | naziwsko| kredyt | lastupdate
------------------------------------------

i potrzebuję z tej tabelki uzyskać informacje o tym kto np w kolumnie lastupdate ma date 2010-01-25 i nie ma później żadnej innej daty
ponieważ w tej tabeli zapisywane dopisywane rekordy o kredytach i lastupdate pokazuje kiedy był on spłacony jeśli pojawia się po nim następny wpis oznacza to że klient po danej dacie wziął kolejny kredyt a ja potrzebuje wyciągnąć tylko tych którzy w danym dniu mają ostatni zapis w las update i nic poza tym

kobinowałem z

to_char(kredyciki.lastupdate, 'YYYY-MM-DD'::text) = to_char(('now'::text::date -7)::timestamp with time zone, 'YYYY-MM-DD'::text)

ale pokazuje również osoby które mają późniejsze lastupdate a mnie zależy aby mac last update był ten który mnie interesuje a po nim już nic więcej nie wiem jak ugryść ten problem proszę o pomoc

2

Odp: Proszę o pomoc

cos w tm stylu (z dokladnością do rzutowania pól bo nie wiem jakiego sa typu)

select * from tabela t1 where lastupdate=now() and not exists (select 1 from tabela t2 where lastupdate>now() and t1.ID_klient=t2.ID_klient);

3

Odp: Proszę o pomoc

Tylko z tego co widzę tu operujemy na dwóch tabelach a ja potrzebuje to zrobić w obrębie jednej

4

Odp: Proszę o pomoc

Tylko że tu operujemy dwa razy na tej samej tabeli smile, tej którą zapodałeś w pierwszym poście.

5

Odp: Proszę o pomoc

oznaczenie t1 i t2 mnie zmyliło tongue zaraz se czekne smile

6

Odp: Proszę o pomoc

Zrobiłem jak napisałeś ( modyfikując pod moje potrzeby ) i nadal nic nie pojawia się wynik pomimo że jak ręcznie sobie sprawdzę są rekordy spełniające kryterium o którym pisałem w 1 poście sad

select * from kredyty t1 where lastupdate=now() and not exists (select * from kredyty t2 where to_char(lastupdate, 'YYYY-MM-DD'::text) = to_char(('now'::text::date -7)::timestamp with time zone, 'YYYY-MM-DD'::text) and t1.id=t2.id);

7

Odp: Proszę o pomoc

?! To może zobacz jeszcze raz to co napisałem i sprawdź  czy masz to samo (zwróć uwagę na zapytanie zagnieżdżone).

8

Odp: Proszę o pomoc

ok lukam jeszcze

9

Odp: Proszę o pomoc

może po D*** dawać że lastupdate jest w timestamp zapisany jako 12-12-2010 01:24:45.123456+01 ??

10

Odp: Proszę o pomoc

??
Ja w zapytaniu zagnieżdżonym napisałęm znak '>' ty napisałeś '=' .
Najpierw mówisz ze chcesz wpisy z dzisiejsza ostatnia data a w zapytaniu piszesz jakieś '-7 dni'.
No nie kumam.

11

Odp: Proszę o pomoc

jeszcze raz potrzebuję wyciągać dane z danego dnia czyli dziś mamy 2 luty daje sobie parametr aby znalazł mi wszystkich którzy 7 dni temu mieli ostatniego zapisa w lastupdate czyli 26 stycznia stąd ten parametr smile a jak szuka mi wszystkich z przed 7 dni zeby wykluczał tch którzy pomimo iż mają zapis z 26 stycznia mają też poźniejsze np z 01.02 żeby wyszukiwał tylko tych którzy mają ostatnią datę w lastupdate jaką ja sobie przyjmę smile

12

Odp: Proszę o pomoc

No to trochę zmienia postać rzeczy. 7 dni to stała wartość czy może się zmieniać?

13

Odp: Proszę o pomoc

stała zawsze liczona od dzisiejszego dnia ( dziś - 7 dni ) smile

Ostatnio edytowany przez szachor (2010-02-02 10:42:48)

14

Odp: Proszę o pomoc

No to może jakoś tak, wyszukuje tych co mieli wpis 7 dni temu i na pewno nie mieli wpisu w okresie czasu od '6 dni temu' do dziś

select * from tabela t1 where lastupdate=now()-interval '7 days' and not exists (select 1 from tabela t2 where lastupdate between now()-interval '6 days' and now() and t1.ID_klient=t2.ID_klient);