Reputation: 193
I would like to order the table by date but my query displays an error:
The ORDER BY clause is invalid in views, inline functions, derived tables, subqueries, and common table expressions, unless TOP, OFFSET or FOR XML is also specified.
My Query:
select intervaldate, [M1], [M2], [M3], [M4], [M5], [M6], [M7], [M8]
from
(select intervaldate,amount, name from (Select tSystem.Name, IntervalCount.IntervalDate,
sum(case when CounterName = 'Prod' then calculationUnits else 0 end) as Amount from IntervalCount, tsystem where
IntervalCount.intervaldate between '2017-03-06 00:00:00.000' and '2017-03-08 00:00:00.000' and IntervalCount.systemid =tsystem.id
group by tSystem.Name, IntervalCount.Intervaldate
order by IntervalCount.Intervaldate asc
) as T3) as T1
pivot
(sum (amount)
for name in ([M1], [M2], [M3], [M4], [M5], [M6], [M7], [M8])
) as t2
how can I order by IntervalDate?
Upvotes: 0
Views: 81
Reputation: 25763
As message error said you can't use order by
in derived tables (in your case).
You should replace order by
to the end of query as below
select intervaldate, [M1], [M2], [M3], [M4], [M5], [M6], [M7], [M8]
from
(select intervaldate,amount, name from (Select tSystem.Name, IntervalCount.IntervalDate,
sum(case when CounterName = 'Prod' then Units else 0 end) as Amount from IntervalCount, tsystem where
IntervalCount.intervaldate between '2017-03-06 00:00:00.000' and '2017-03-08 00:00:00.000' and IntervalCount.systemid =tsystem.id
group by tSystem.Name, IntervalCount.Intervaldate
order by IntervalCount.Intervaldate asc
) as T3) as T1
pivot
(sum (amount)
for name in ([M1], [M2], [M3], [M4], [M5], [M6], [M7], [M8])
) as t2
order by Intervaldate asc
Upvotes: 3