Essayez des sous-requêtes comme celle-ci
SELECT
DATEDIFF(
(
SELECT MIN(date)
FROM Transaction
WHERE trans_type='Sell'
) AS first_sell_date
,
(
SELECT MIN(date)
FROM Transaction
WHERE trans_type='Buy'
) AS first_buy_date
)
EDIT :Suite aux commentaires de l'OP et mise à jour de la question avec une requête complète.
Ne pouvez-vous pas simplement envelopper le DATEDIFF autour d'un appel MIN ?
DATEDIFF(
MIN(case when t.trans_type ='Sell' then transaction_date end),
MIN(case when t.trans_type ='Buy' then transaction_date end)
) as Date