Article View: pl.comp.bazy-danych
Article #195791Re: Najnowszy rekord
From: Adam
Date: Fri, 19 May 2023 12:40
Date: Fri, 19 May 2023 12:40
75 lines
2453 bytes
2453 bytes
Dnia Fri, 19 May 2023 14:31:57 +0200, Adam napisał(a):
> Dnia Fri, 19 May 2023 00:55:08 +0200, Adam napisał(a):
>
>> Witajcie.
>>
>> Dotyczy MS-SQL.
>>
>> Są dwie tabele, główna A i druga B.
>> Potrzebuję wyrzucić tylko najnowsze rekordy.
>>
>> Powiedzmy, że jest baza książek i wypożyczeń.
>>
>> Przykładowo tabela książki A:
>> ID_book, Book_Tytul
>> 1, Faraon
>> 2, Vinetou
>> 3, Solaris
>>
>> tabela wypożyczenia B:
>> ID_book, ID_wypoz, Osoba
>> 2, 1, Jan Kowalski
>> 2, 2, Anna Nowak
>> 3, 3, Zenon Lubiany
>> 3, 4, Olek Kwiatek
>> 1, 5, Zuzia Nieduzia
>>
>> chcę w wyniku otrzymać ostatnie wypożyczenia, czyli:
>> Book_Tytul, Osoba
>> Vinetou, Anna Nowak
>> Solaris, Olek Kwiatek
>> Faraon, Zuzia Nieduzia
>>
>> Relackja 1:MANY a.ID_book = B.ID_book
>>
>> Totalne mam zaćmienie, nie potrafię do tego dołożyć distinct czy czegoś w
>> tym rodzaju.
>> Poratuje ktoś?
>
> SELECT A.Book_Tytul, B.Osoba
>
> FROM tabelaA A
>
> JOIN tabelaB B ON A.ID_book = B.ID_book
>
> JOIN (
>
> SELECT ID_book, MAX(ID_wypoz) AS max_id_wypoz
>
> FROM tabelaB
> GROUP BY ID_book
> ) AS C
> ON B.ID_book = C.ID_book AND B.ID_wypoz = C.max_id_wypoz
Albo:
SELECT A.Book_Tytul, B.Osoba
FROM tabelaA A
JOIN (
SELECT ID_book, Osoba,
ROW_NUMBER() OVER (PARTITION BY ID_book ORDER BY ID_wypoz DESC)
AS rn
FROM tabelaB
) AS B
ON A.ID_book = B.ID_book AND B.rn = 1
--
Pozdrawiam.
Adam
Technical Details
Message-ID:
<1rtpcjxo8hi46.1yw9kmpm1si7$.dlg@40tude.net>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.185.152.121.246!not-for-mailReferences:
<gj83y4yzf16w.1f02fwf4kr6x1$.dlg@40tude.net> <mea2rwx2fksu.yqv1cs63somy.dlg@40tude.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.chmurka.net!.POSTED.185.152.121.246!not-for-mail From: Adam <a.g@poczta.onet.pl> Newsgroups: pl.comp.bazy-danych Subject: Re: Najnowszy rekord Date: Fri, 19 May 2023 14:40:05 +0200 Organization: news.chmurka.net Message-ID: <1rtpcjxo8hi46.1yw9kmpm1si7$.dlg@40tude.net> References: <gj83y4yzf16w.1f02fwf4kr6x1$.dlg@40tude.net> <mea2rwx2fksu.yqv1cs63somy.dlg@40tude.net> NNTP-Posting-Host: 185.152.121.246 MIME-Version: 1.0 Injection-Info: news.chmurka.net; posting-account="Adam"; posting-host="185.152.121.246"; logging-data="16710"; mail-complaints-to="abuse-news.(at).chmurka.net" User-Agent: 40tude_Dialog/2.0.15.1pl Cancel-Lock: sha1:oFDE0yDUh9hmg05BV/5hKJwtZQg= sha256:Wg+PZHLaeHvClwOYmHpqnjP1X8iK6yJlJEcKY3erAWU= sha1:LFOI+fYhjovGxjSIFgfNQReD1pg= sha256:4/GG0U8kfRTI3EWSsDJ076StolpWuCuH27o+z5miq80= Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit