SQL Server you can use an aggregate function (SUM
, COUNT
, etc...) followed by OVER
and PARTITION BY
to achieve inline results
SELECT
fi.facilityIndividualId,
fi.lastName + ',' + fi.firstName as 'Patient Name',
ddh.drugName,
CAST((ddh.dosesGiven * a.drugPrice) as decimal(9,2)) as 'Price',
SUM(CAST((ddh.dosesGiven * a.drugPrice) as decimal(9,2))) OVER (PARTITION BY fi.facilityIndividualId) as 'Total'
FROM
drugDistributionHistory ddh
INNER JOIN facilityIndividuals fi on ddh.facilityIndividualId = fi.facilityIndividualId
INNER JOIN drugPrices ON ddh.drugName like '%' + a.drugName + '%'
ORDER BY
fi.lastName + ', ' + fi.firstName,
ddh.drugName