Proste pytania dotyczące dwóch tabel w bazie danych

0

Witajcie,

Mam proste 2 tabele

Klienci

id nazwisko imie
1 Kowlaski Marcin
2 Nowak Piotr
3 Bałtroczyk Krzysztof
zakupy
id_klienta data_zakupu wartosc_zakupu
1 2015-01-01 1000.00
1 2015-01-15 500.00
1 2015-02-04 600.00
3 2015-01-02 6000.00
3 2015-01-01 4000.00
2 2015-01-01 1000.00
Chciałbym uzyskac informacje o:

Najnowszych zakupów każdego z klientów w postaci:
id, nazwisko,imie,data,kwota

Sumie zakupów w całym okresie:

id, nazwisko,imie,data_pierwszego_zakupu,data_ostatniego_zakupu,suma_wartosci_zakupów_w_okresie

Moge prosic o jakąś pomoc lub wskazówki?

Pozdrawiam
mborow

dodanie znaczników tabelki i <code class="none"> - @furious programming

0

Może najpierw drugie - jest prostsze:

SELECT k.id,
           k.nazwisko,
           k.imie,
           MIN(z.data_zakupu) AS data_pierwszego_zakupu,
           MAX(z.data_zakupu) AS data_ostatniego_zakupu,
           SUM(z.wartosc_zakupu) AS suma_wartosci_zakupów_w_okresie
FROM Klienci AS k
INNER JOIN Zakupy AS z ON k.id = z.id_klienta
GROUP BY k.id, k.nazwisko, k.imie

skoro to mssql, to do pierwszego użyję CTE

;WITH ostatni(id, data) AS
(  SELECT id_klienta AS id,
              MAX(data_zakupu) AS data
   FROM zakupy
   GROUP BY id_klienta  )
SELECT k.id,
           k.nazwisko,
           k.imie,
           z.wartosc_zakupu AS kwota
FROM Klienci AS k
INNER JOIN Zakupy AS z ON k.id = z.id_klienta
INNER JOIN ostatni AS o ON o.data = z.data_zakupu

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