2016-04-20 6 views
4

私はROW_NUMBER()を使用して行番号を取得しようとしましたが、それは次のようなエラーが表示されます。ここではSQLでROW_NUMBER()を取得する方法は?

can't format message 13:896 -- message file C:\WINDOWS\firebird.msg not found. Dynamic SQL Error. SQL error code = -104. Token unknown - line 2, column 66.

は私のコードです:

SELECT avg(CSIDTL.RATING) ,SVD.SVCADVISORNAME, ROW_NUMBER() OVER(ORDER BY avg(CSIDTL.RATING)) 
     FROM T_APPT_BOOKING_MSTR MSTR ,T_APPT_CSI_SURVEY CSI,T_APPT_CSI_SURVEY_DTL CSIDTL, 
     T_SVC_SVCADVISOR_MASTER SVD 
     WHERE MSTR.APPTBKID = CSI.APPTBKID 
     AND CSI.CSI_SURVERYID = CSIDTL.CSI_SURVERYID 
     AND SVD.SVCADVISORID = MSTR.SVCADVISORID 
     AND CSI.FEEDBACK_STATUS = 'Y' 
     AND CSIDTL.question ='Service Advisor' 
     GROUP BY SVD.SVCADVISORNAME 
     ORDER by avg(CSIDTL.RATING) 
+2

どのバージョン? –

+2

私はあなたが 'オーバー'の中で '平均で'オーダーできることを確信していません... –

+1

[This(http://stackoverflow.com/questions/3344863/how-can-i-get-the-row-number) -in-sql-query)以前に質問された質問が役に立ちます。 –

答えて

8

ROW_NUMBER()機能を解除し、わずか数日後、Firebirdの3.0で導入されました前。正確な構文については、リリースノートのWindow (Analytical) Functionsを参照してください。あなたが受け取ったエラーは、この機能を持たない古いバージョンのFirebirdを使用していることを示唆しています。

+0

OK、thakz。私は解決策を見つけましたありがとうございます。 –

0

私はFirebirdの2.5

参考にこれを使用する:火の鳥のhttp://www.firebirdfaq.org/faq343/

SELECT rdb$get_context('USER_TRANSACTION', 'row#') as row_number, DUMMY, A.* 
FROM your_table A 
CROSS JOIN 
(SELECT rdb$set_context('USER_TRANSACTION', 'row#', 
COALESCE(CAST(rdb$get_context('USER_TRANSACTION', 'row#') AS INTEGER), 0) + 1) AS dummy 
FROM rdb$database) dummy 
関連する問題