Witam!
Jestem nowy tutaj. Bardzo proszę o wybaczenie tytułu, nie wiem jak nazwać to z czym mam problem.
select * from dbo.Zdarzenia
where ZdR_UdPId = 8487
ZdR_ZdRId | ZdR_TzDId | ZdR_Data | ZdR_UsRId | ZdR_Uwagi | ZdR_SrWId | ZdR_UdPId
---------------- | ------------------- | ------------------- | ------------------- | ------------------- | -------------------
5826 |3 |2013-09-16 0000.000 |NULL |NULL |1 |8487
6548 |1 |2015-08-28 0000.000 |8c1911e5-0330-4e8c-a464-c32e42eb5c83 |NULL |1 |8487
6549 |1 |2017-08-24 0000.000 |8c1911e5-0330-4e8c-a464-c32e42eb5c83 |NULL |1 |8487
Potrzebuje z tego rekord z maksymalną datą więc:
SELECT MAX(z2.ZdR_Data) AS max_date FROM dbo.Zdarzenia z2 where z2.ZdR_UdPId = 8487 group by z2.ZdR_UdPId
max_date |
---|
2017-08-24 0000.000 |
Pełne zapytanie:
SELECT z.* FROM dbo.Zdarzenia z
JOIN ( SELECT distinct MAX(z2.ZdR_Data) AS max_date FROM dbo.Zdarzenia z2 group by z2.ZdR_UdPId) m
ON m.max_date = z.ZdR_Data
where z.ZdR_UdPId = 8487
ZdR_ZdRId | ZdR_TzDId | ZdR_Data | ZdR_UsRId | ZdR_Uwagi | ZdR_SrWId | ZdR_UdPId
---------------- | ------------------- | ------------------- | ------------------- | ------------------- | -------------------
6548 |1 |2015-08-28 0000.000 |8c1911e5-0330-4e8c-a464-c32e42eb5c83 |NULL |1 |8487
6549 |1 |2017-08-24 0000.000 |8c1911e5-0330-4e8c-a464-c32e42eb5c83 |NULL |1 |8487
Dlaczego wyciąga dwa rekordy skoro max data jest jedna i na rok 2017?
Dzieje się tak w przypadku wszystkich rekordów, które mają ten sam schemat wpisów.