SELECT c.DESCRIPTION,
fobt.OBJECT_ID,
fobt.FA_OBJECT_TRANS_VALUE_TYPE,
fobt.OBJECT_TRANSACTION_ID,
fobt.OBJECT_TRANSACTION_DATE,
fobt.AMOUNT,
fobt.FA_YEAR,
fobt.FA_PERIOD,
SUM(fobt.AMOUNT) OVER(
PARTITION BY fobt.
ORDER BY fobt., fobt.OBJECT_TRANSACTION_DATE
) AS RUNTOTAL,
DENSE_RANK() OVER(
PARTITION BY fobt.OBJECT_ID
ORDER BY fobt.FA_YEAR DESC
) RK1,
DENSE_RANK()
OVER(
PARTITION BY fobt.OBJECT_ID, c.DESCRIPTION
ORDER BY
fobt.FA_YEAR,
fobt.FA_PERIOD,
c.DESCRIPTION DESC
)
rnk2
FROM FA_OBJECT_TRANSACTION fobt
INNER JOIN (SELECT DISTINCT COMPANY,
OBJECT_ID,
OBJECT_TRANSACTION_ID,
CODE_C
FROM FA_) FT
ON fobt. = FT.
AND fobt. = FT.OBJECT_TRANSACTION_ID
INNER JOIN CODE_C c
ON FT.CODE_C = c.CODE_C
AND FT.COMPANY = c.COMPANY
WHERE fobt.OBJECT_ID = 12345
AND fobt.FA_ IN ('Depreciation')
ORDER BY 2, 4
OBJECT_ID、DESCRIPTION、YEARおよびPERIODのDENSE_RANKを修正しようとしています。オブジェクトid = 1234は1つしかありませんが、2つの場所(ロッテルダムと南ウィンザー)があります。機器Aは、5/2015から3/1616にSouth Windsorの位置に記録され、その後、4/2016にロッテルダムに移された。私はOBJECT_IDとLOCATIONによってPARTITIONによってDENSE_RANKを持っていますが、by byは正しく機能していません。私は最新の日付(その機器の場所によって年と月を取っていきたいと思います。たとえば、3月20日にSouth Windsorにある機器Aは、その場所の最新の日付であるため、ランク1になります。ロケーションが変更されたので、ランク1のタグが付けられます。現在の結果と2番目の例が目的の結果です。case文が集計関数を使用してcase文でデータを集計しようとしています
私の現在のコード。 –
DENSE_RANK()OVER(fobt.OBJECT_ID、c.DESCRIPTION ORDER BY fobt.FA_YEAR、fobt.FA_PERIOD、c.DESCRIPTION desc) –
完全なコードで質問を編集してください。あなたは小さなスニペットを表示していて、そこから何が起こっているのかを伝えるのは難しいです(fobt.FA_Yearを表示した場合、少なくともfobtはfromステートメントに表示されます)。あなたはそのように多くの助けを得るでしょう。 – Twelfth