Without using LAG
or CTE
's, a simple solution is to join your table to itself...
SELECT ClientID, TxnDate, TxnCode, Appt#,
(SELECT MAX(TxnDate)
FROM data
WHERE data.ClientID = current.ClientID
AND data.TxnDate < current.TxnDate
) AS PreviousTxnDate
FROM data AS current
Then you could use this as a generated table to compute the difference in dates...
SELECT ClientID, TxnDate, TxnCode, Appt#,
DATEDIFF(Month, PreviousTxnDate, TxnDate) AS Months
FROM (
SELECT ClientID, TxnDate, TxnCode, Appt#,
(SELECT MAX(TxnDate)
FROM data
WHERE data.ClientID = current.ClientID
AND data.TxnDate < current.TxnDate
) AS PreviousTxnDate
FROM data AS current
) dataWithPrevious