Witam, jestem poczatkujaca w wykonywaniu zapytan sql i potrzebuję wyciagnać z bazy danch informację na temat najstarszej daty wniosku dla danego klienta i produktu. Baza wygląda następująco:
id_wniosku idklienta data_wniosku produkt
1 12 2016-12-01 A
2 45 2016-11-14 A
3 45 2017-01-22 B
4 45 2017-01-05 B
6 78 2017-03-15 C
7 45 2016-12-06 B
jak skonstrułowac zapytanie aby np dla Klienta z id 45 produktu B otrzymac datę 2016-12-06
( id wniosku, id klienta, data najstarszego wniosku, produkt).
Jak widac w bazie powtarzają się id klienta i produkty
bardzo proszę o pomoc!!!
0
0
SELECT data_wniosku
FROM (
SELECT data_wniosku
FROM moja_skomplikowana_tabela
WHERE id_wniosku = 666 AND produkt = 'obrus'
ORDER BY data_wniosku ASC
)
WHERE rownum = 1
Edit: dobra doczytałem oracle ;)
0
@ann_12 - podstawy grupowania i funkcji agregujących. oś w ten deseń:
SELECT klient_id, product_id, Min(data) FROM tabela GROUP by klient_id, product_id
0
problemem jest to że dla danego** id_klienta ** mogę mieć kilka "id wniosków" na dany **produkt **a chodzi o to żeby dla danego od klienta zidentyfikować wszytkie id wniosków dla danego produktu i wskazać najstarszy z nich.
chodzi mi o to żeby w zapytaniu uzyskać dla wszytkich **id_klientów ** **najstarszą datę dla wniosku w ramach danego produktu **
0
Może za pomocą funkcji analityczych?
select min(data_wniosku) over (partition by id_klienta,produkt order by 1) MIN_DATA, id_wniosku,id_klienta, data_wniosku, produkt from tabela;