2017-09-14 5 views
-1

私のクエリは次のとおりです。ORDER BYをサブクエリで使用するにはどうすればよいですか?

SET @query= 
    N'SELECT TaskID 
    ,Company 
    ,TaskSource 
    ,Urgency 
    ,Activity 
    ,StatusName 
    ,RequesterMailID 
    ,tsk.CreatedDate 
    ,tsk.LastUpdatedDate 
    ,LastUpdatedBy 
    ,(DATEDIFF(DAY, dbo.GetTimeByTimeZoneId(SLAStartTime, '' NZST ''), dbo.GetTimeByTimeZoneId(SLAActualEndTime, '' NZST ''))) 
     + 1 
     - count([Pact_OEMS].[dbo].[MstHolidays](HolidayDate)) AS AgeinDaystilldate 
FROM TaskMaster tsk 
LEFT OUTER JOIN TrnTaskReportDetails tsr ON tsk.TaskID = tsr.intTaskId 
FULL OUTER JOIN TrnSLADetails sla ON tsk.TaskID = sla.intTaskId 
FULL OUTER JOIN [Pact_OEMS].[dbo].[MstHolidays] ON [Pact_OEMS].[dbo].[MstHolidays].HolidayId = sla.intTaskId 
WHERE CreatedDate >= @FromDate 
    AND CreatedDate <= @ToDate 
    AND TaskID = @TaskID 
ORDER BY tsk.CreatedDate 
    ,tsk.LastUpdatedDate' 

とエラー:

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.

はどのようにして、サブクエリでORDER BYを使用することができますか?

+0

ビュー、インライン関数、派生テーブル、サブクエリ、および共通テーブル式でORDER BY句が無効です(https://stackoverflow.com/questions/18031421/the-order-by-clause- is-invalid-in-views-inline-functions-derived-tables-subqu) –

+1

この特定のステートメントは実際にそのエラーを生成しますか?表示できるビュー、インライン関数、派生テーブル、サブクエリ、またはcteはここまでありません。 –

答えて

0

それはあなたが自分の考えやアプローチを揃えるのに役立ちますように私もこのarticleを読むことをお勧めします

SELECT TaskID, 
     Company, 
     TaskSource, 
     Urgency, 
     Activity, 
     StatusName, 
     RequesterMailID, 
     tsk.CreatedDate, 
     tsk.LastUpdatedDate, 
     LastUpdatedBy, 
     (DATEDIFF(DAY, dbo.GetTimeByTimeZoneId(SLAStartTime, '' NZST ''), dbo.GetTimeByTimeZoneId(SLAActualEndTime, '' NZST '')))+1-COUNT([Pact_OEMS].[dbo].[MstHolidays](HolidayDate)) AS AgeinDaystilldate, 
     ROW_NUMBER() OVER (PARTITION BY TaskID ORDER BY tsk.CreatedDate, 
                 tsk.LastUpdatedDate) rNO 
FROM TaskMaster tsk 
    LEFT OUTER JOIN TrnTaskReportDetails tsr ON tsk.TaskID = tsr.intTaskId 
    FULL OUTER JOIN TrnSLADetails sla ON tsk.TaskID = sla.intTaskId 
    FULL OUTER JOIN [Pact_OEMS].[dbo].[MstHolidays] ON [Pact_OEMS].[dbo].[MstHolidays].HolidayId = sla.intTaskId 
WHERE CreatedDate >= @FromDate 
     AND CreatedDate <= @ToDate 
     AND TaskID = @TaskID 

の下のようなウィンドウ関数を使用してみてください。

+0

お返事ありがとうございます。私はどのようにグループ句を与えるべきですか? – Queries

+0

どの列でグループ化したいですか? – singhswat

関連する問題