🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.bazy-danych
Article #195791

Re: Najnowszy rekord

#195791
From: Adam
Date: Fri, 19 May 2023 12:40
75 lines
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-mail
References: <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