SQL - podzapytanie i szukanie min

Odpowiedz Nowy wątek
2015-05-03 13:21
0

Witam na forum.
To jest moje pierwsze pytanie na forum więc nie śmiejcie się gdy będę głupio pisał bo zaczynam uczyć się sql i jestem lamerem.

A więc mam tabelę osoby
id_osoby, data_poczatkowa, data_koncowa, imie, nazwisko żadne pole nie jest unikalne klucz jest złożony z id i data_poczatkowa.
id_osoby data_poczatkowa data_koncowa imie nazwisko
10 2015-01-01 2015-01-31 Jan Kowalski
10 2015-02-01 2015-02-28 Jan Kowalski
10 2015-03-01 2015-03-31 Jan Kowalski
15 2015-01-02 2015-01-31 Piotr Nowak
15 2015-02-02 2015-02-28 Piotr Nowak
15 2015-03-02 2015-03-31 Piotr Nowak

Jak skonstruować zapytanie by wybrać rekordy gdzie dla każdej osoby zostanie wybrany rekord z najwcześniejszą datą początkową i wynik był następujący:
10 2015-01-01 2015-01-31 Jan Kowalski
15 2015-01-01 2015-01-31 Piotr Nowak

Dziękuję i pozdrawiam,

Pozostało 580 znaków

2015-05-03 18:07

No przecież napisałeś, co jest kluczem, więc się nim posłuż... Np. tak

SELECT * FROM osoby WHERE (id, data_poczatkowa) IN (SELECT id, min(data_poczatkowa) FROM osoby GROUP by id)

Lub bardziej po SQL-owemu:

SELECT osoby.* FROM osoby JOIN (SELECT id, min(data_poczatkowa) data_poczatkowa FROM osoby GROUP BY id) X on X.id=osoby.id AND X.data_poczatkowa=osoby.data_poczatkowa

Pozostało 580 znaków

2015-05-06 18:02
0

Dzięki Marcinie o to mi chodziło.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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