Krzysztof Operacz

Krzysztof Operacz robię różne rzeczy
dla kasy

Temat: LEFT JOIN i TOP()

SELECT
OB.numer
,str(OB.numer)+' - '+OB.nazwa as Nazwa
,CHOOSE(OB.typ+1,'Nieznany','Przepompownia','SCADA') As [Typ obiektu]
,IIF(OB.aktywny=1,'AKTYWNY','NIEAKTYWNY') As [Status]
,IIF(OB.łączność =0,'BRAK KOMUNIKACJI','KOMUNIKACJA OK') As [Satus komunikacjia]
,OB.czas_godz_lacznosc As [Czas ostatniego połączenia]
,KOM.data
FROM obiekty AS OB
LEFT JOIN (select * from komunikaty) AS KOM ON KOM.adress = OB.numer
ORDER BY KOM.Data DESC

mam takie zapytanie i o dziwo działa. Chciałbym jednak zmniejszyć ilość wierszy z KOM do max. 10 sztuk.

LEFT JOIN (select TOP(10) * from komunikaty) AS KOM ON KOM.adress = OB.numer

Działa ale odgranicza mi równo 10 wierszy dla wszystkich

LEFT JOIN TOP(10) (select * from komunikaty) AS KOM ON KOM.adress = OB.numer

nie działa.

Czy ktoś mógłby mnie nakierować na właściwe rozwiązanie?

Pozdrawiam
Paweł B.

Paweł B. architekt baz danych
/ SQL Developer /BI
Developer

Temat: LEFT JOIN i TOP()

LEFT JOIN (select *, ROW_NUMBER() OVER (PARTITION BY adress ORDER BY Data DESC) AS RN from komunikaty) AS KOM ON KOM.adress = OB.numer AND KOM.RN<11
Krzysztof Operacz

Krzysztof Operacz robię różne rzeczy
dla kasy

Temat: LEFT JOIN i TOP()

Dziękuje...DZIAŁA... widzę, że sporo jeszcze muszę się nauczyć :).

Jeszcze tylko muszę zrozumieć jak to działa, ale to poszukam sam w googlach.

Jeszcze raz serdecznie dziękuje.Ten post został edytowany przez Autora dnia 05.10.17 o godzinie 14:51

Następna dyskusja:

zapytanie select 5 tabel join




Wyślij zaproszenie do