SQL wyświetlanie ostatniego pasującego rekordu

0

Witajcie,

mam takie zapytane:

select
StopsRegisterEntry.[Machine Stop] as [Zatrzymana]
from [Stops Register]
join dbo.[Stops Register Entry] as StopsRegisterEntry
on StopsRegisterEntry.[Stops Register Entry No.]=[Stops Register].[Entry No.]

Problem w tym że pasuących rekordów mam kilka, jak może wyświetlić tylko ostatni (najstarszy) z nich?
dzieki za pomoc

1
select TOP 1

oraz użycie ORDER BY costam DESC

 costam to najlepiej jakby był timestamp albo coś po czym da się sortować oczywiście ;)

Edit:
http://www.w3schools.com/sql/sql_func_last.asp
0

Może za słabo to opisałem, i troche uprościlem to zapytanie. taki jest wynik całego zapytania:

select 
	   [Stops Register].[Entry No.] as [Nr],
	   StopsReason.[Proces Type] as [Typ przestoju], 
	   [Stops Register].[Start Time] as [Data zgłoszenia],
	   Employee.[Name] as [Pracownik zgł],
	   Machine.Code as [Maszyna],
	   MachineFunctionalPart.[Description],
	   [Stops Register].[Stop Reason Description] as [Opis],
	   [Stops Register].[Downtime Status] as [Status],
	   Shifts.[Description] as [Zmiana],
	   StopsRegisterEntry.[Machine Stop] as [Zatrzymana],
	   [Stops Register].[Total Downtime] as [Czas przestoju]
from [Stops Register]

join dbo.[Stop Reasons] as StopsReason
on StopsReason.[Code]=[Stops Register].[Stop Reason Code]
join dbo.[Employee] as Employee
on Employee.[Code]=[Stops Register].[Employee Code]
join dbo.Machine as Machine
on Machine.Code=[Stops Register].[Machine Code]
join dbo.[Machine Functional Part] as MachineFunctionalPart
on MachineFunctionalPart.Code=[Stops Register].[Machine Functional Part Code]
join dbo.Shifts as Shifts
on Shifts.Code=[Stops Register].[Shift Code]

join dbo.[Stops Register Entry] as StopsRegisterEntry
on StopsRegisterEntry.[Stops Register Entry No.]=[Stops Register].[Entry No.]
order by dbo.[Stops Register].[Entry No.] DESC

A taki jest wynik:

776 Production 2014-08-05 0600 Falkowski Wojciech E14 CHŁODZIARKA Closed 2014-08-05 Shift 1 1 0 24
776 Production 2014-08-05 0600 Falkowski Wojciech E14 CHŁODZIARKA Closed 2014-08-05 Shift 1 0 0 24
775 Production 2014-08-05 0500 Krzyśko Marek E14 CHŁODZIARKA Closed 2014-08-04 Shift 3 1 0 11
775 Production 2014-08-05 0500 Krzyśko Marek E14 CHŁODZIARKA Closed 2014-08-04 Shift 3 0 0 11
774 Production 2014-08-05 0400 Krzyśko Marek E14 CHŁODZIARKA Closed 2014-08-04 Shift 3 1 0 43
774 Production 2014-08-05 0400 Krzyśko Marek E14 CHŁODZIARKA Closed 2014-08-04 Shift 3 0 0 43
773 Production 2014-08-05 0100 Iwański Jerzy E20 BECZKARKA Closed 2014-08-04 Shift 3 1 0 42
773 Production 2014-08-05 0100 Iwański Jerzy E20 BECZKARKA Closed 2014-08-04 Shift 3 0 0 42
772 Production 2014-08-05 0000 Iwański Jerzy E20 BECZKARKA Closed 2014-08-04 Shift 3 1 0 29
772 Production 2014-08-05 0000 Iwański Jerzy E20 BECZKARKA Closed 2014-08-04 Shift 3 0 0 29
771 Production 2014-08-04 2100 Kowalewski Dariusz E14 CHŁODZIARKA Closed 2014-08-04 Shift 2 1 0 376
771 Production 2014-08-04 2100 Kowalewski Dariusz E14 CHŁODZIARKA Closed 2014-08-04 Shift 2 0 0 376

Widac tutaj że rekordy ją podwajane np 772, 772 czy 774,74. Jest to wynikiem:

StopsRegisterEntry.[Machine Stop] as [Zatrzymana],

join dbo.[Stops Register Entry] as StopsRegisterEntry
on StopsRegisterEntry.[Stops Register Entry No.]=[Stops Register].[Entry No.]

ponieważ rekordów jest kilka pasujących, czy można wyświetlic tylko ostatni z tych pasujących. Tak aby całośc nie była podwajana. To co napisałeś wcześniej pasowłao do wycinka który podałem do całości już niebardzo. Moja wina za bardzo uprościłem kod.

0

Temat rzeka. Dzięki za informacje.

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