I am very new to SQL. I am trying to use the code below and it keeps giving me the following error -
Msg 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.
Incorrect syntax near '2'.
Please can someone help - where am I going wrong?
I am just trying to calculate median.
Could someone please suggest amendment to this code as I have picked up someone else's work.
Any help will be greatly appreciated.
SELECT
TOP (100) PERCENT Name, Sales Median
FROM
(SELECT
a1.Name, a1.Sales, COUNT(a1.Sales) Rank
FROM
PSE.vw_EM_Data a1, PSE.vw_EM_Data a2
WHERE
a1.Sales < a2.Sales OR
(a1.Sales = a2.Sales AND a1.Name <= a2.Name)
GROUP BY
a1.Name, a1.Sales
ORDER BY
a1.Sales DESC) a3
WHERE
Rank = (SELECT (COUNT(*) + 1) DIV 2 FROM Total_Sales);
WHERE
(Name LIKE 'John%')
AND (DISPOSAL = '1')
AND (DATE BETWEEN CONVERT(DATETIME, '2010-04-01 00:00:00', 102) AND CONVERT(DATETIME, '2011-03-30 00:00:00', 102))