I am getting the error
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP or FOR XML is also specified
for below code,
SELECT MIDDLE.MODEL AS Model,
MIDDLE.MANUFACTURER AS Manufacturer,
{fn CONCAT(CAST(AVG(ABS(MIDDLE.AVG_YEAR)/365) as Decimal(10, 2)), ' Years')} AS AverageAge,
{fn CONCAT('$',CAST(SUM(MIDDLE.ACQCOST) as Decimal(15,2)))} AS TotalAcquistionCost,
{fn CONCAT('$',CAST(AVG(MIDDLE.ACQCOST) as Decimal(15,2)))} AS AverageAcquistionCost,
{fn CONCAT('$',CAST(SUM(MIDDLE.SUMofSPENT) as Decimal(15,2)))} AS TotalRepairCost,
{fn CONCAT('$',CAST(AVG(MIDDLE.SUMofSPENT) as Decimal(15,2)))} AS AverageRepairCost
FROM
(SELECT
PRE.Model AS MODEL,
PRE.Manufacturer AS MANUFACTURER,
PRE.Avg_Year AS AVG_YEAR,
PRE.AcqCost AS ACQCOST,
SUM(PRE.Spent) AS SUMofSPENT FROM
(SELECT
E.sn AS SerialNumber,
E.mdl AS Model,
DATEDIFF(year, E.acq, GETDATE()) AS Avg_Year,
E.cost AS AcqCost,
E.mfr AS Manufacturer,
FR.spent AS Spent
FROM rme_failrepair AS FR
INNER JOIN rme_endo AS E
ON FR.acq_id = E.acq_id
AND FR.en_sn = E.en_sn
WHERE E.mdl = @mdl
ORDER BY SerialNumber, Spent )AS PRE
GROUP BY PRE.SerialNumber) AS MIDDLE