First off, if you want to select a TOP set, you need to supply an ORDER BY clause, or SQL is at liberty to return rows in whatever order suits it. Just saying
SELECT TOP
doesn't apply any ordering.
Secondly, the error is very specific: your subquery (
SELECT TOP(10) ... )
will always return multiple values unless there is only one matching row in the table. Since you are comparing the returned rows with a single value, the system has no idea what you mean - you as you don't when I say "give me the fruit that matches these ten pages I ripped out of a book"
To compare, you must provide a single value on each side of the equals sign.
I have no idea what ordering you need, but try something like this:
SELECT MAX(DayClose) FROM
FROM (SELECT TOP (10) DayClose
FROM Tbl_Back_Data
WHERE Tbl_Back_Data_Nse.ISIN ='INE358A01014'
AND SERIES ='EQ'
ORDER BY InsertDate ASC)