I've got this script that I'm running to extract debit order details
It returns the right results but more than one record per client. I want
to select one record with max(InceptionDate).From tbDevLoanMaster I only want one
record as well.

This is the original script
Select
Convert(Int,a.CLIENTNO ) As Clientno
,Convert(Int,a.LOANID ) As LoanID
,Convert(Int,b.DebitOrderAttempts ) As DebitOrderAttempts
,Isnull(Cast(b.StrikeAmount As Numeric(13,2)),0) As StrikeAmount
,Isnull(Convert(Int,b.NoOfStrikes), 0) As NoOfStrikes
,Cast(Replace(Convert(Char(10),b.StrikeDate,120),'-','')As Int) As StrikeDate
,Convert(Char(1),b.UseStrikeDateOrDay ) As UseStrikeDateOrDay
,Convert(Char(1),b.StrikeEnable ) As StrikeEnable

,Cast(Replace(Convert(Char(10),c.InceptionDate,120 ),'-','')As Int) As InceptionDate

,Isnull(Convert(Int,c.NoOfStrikes), 0) As NoOfStrikesH
,Isnull(Convert(Numeric(13,2),c.StrikeAmount) ,0) As StrikeAmountH

,Cast(Replace(Convert(Char(10),c.OnceOffStrikeDate ,120),'-','')As Int) As OnceOffStrikeDateH

,Convert(Int,c.DebitOrderDay ) As DebitOrderDayH
,Convert(Char(1),c.UseStrikeDateOrStrikeDay ) As UseStrikeDateOrStrikeDayH
,Convert(Varchar(32),c.Frequency ) As FrequencyH
,Convert(Char(1),c.StrikeRule ) As StrikeRuleH

,Cast(Replace(Convert(Char(10),c.FortnightlyStartD ate,120),'-','')As Int) As FortnightlyStartDateH
From
tbDevLoanMaster a Inner Join CUSTDEBITORDER b ON a.CLIENTNO = b.CUSTCODE
JOIN CUSTDEBITORDERHISTORY c ON a.CLIENTNO = c.CUSTCODE


I then broke it down into two steps but I still get more than one record. How can I achieve this
---Step 01
SELECT s1.Clientno ,s1.LoanId into #tbDevLoanMaster
FROM tbDevLoanMaster AS s1
WHERE s1.LoanId IN ( SELECT TOP 1 s2.LoanId FROM tbDevLoanMaster AS s2
WHERE s1.Clientno = s2.Clientno
ORDER BY s2.LoanId DESC)
GROUP BY s1.Clientno,s1.LoanId
ORDER BY s1.Clientno,s1.LoanId Desc


---Step 02
SELECT
s1.Clientno
,s1.LoanID
,s1.DebitOrderAttempts
,s1.StrikeAmount
,s1.NoOfStrikes
,s1.StrikeDate
,s1.UseStrikeDateOrDay
,s1.StrikeEnable
,s1.InceptionDate
,s1.NoOfStrikesH
,s1.StrikeAmountH
,s1.OnceOffStrikeDateH
,s1.DebitOrderDayH
,s1.UseStrikeDateOrStrikeDayH
,s1.FrequencyH
,s1.StrikeRuleH
,s1.FortnightlyStartDateH
FROM
#tbDevLoanMaster AS s1
WHERE s1.InceptionDate IN ( SELECT TOP 1 s2.InceptionDate FROM #tbDevLoanMaster AS s2
WHERE s1.Clientno = s2.Clientno
ORDER BY s2.InceptionDate DESC)
GROUP BY s1.Clientno
,s1.LoanID
,s1.DebitOrderAttempts
,s1.StrikeAmount
,s1.NoOfStrikes
,s1.StrikeDate
,s1.UseStrikeDateOrDay
,s1.StrikeEnable
,s1.InceptionDate
,s1.NoOfStrikesH
,s1.StrikeAmountH
,s1.OnceOffStrikeDateH
,s1.DebitOrderDayH
,s1.UseStrikeDateOrStrikeDayH
,s1.FrequencyH
,s1.StrikeRuleH
,s1.FortnightlyStartDateH

ORDER BY s1.Clientno,s1.InceptionDate desc