0

これは私のコードで、これらのフォーラムでの別の回答から改作されています。しかし、それは私にそれを伝えています"

私はSQLが初めてで、エラーを見つけることができません。それを修正するのに役立つことは大歓迎です。

「cteMain: それが何なのか、何を参照しているのかわかりません。VieClaimTrans は TrnClaimTrans の VIEW であり、私が操作しているすべての情報が保存されています。」

WITH cteMain AS

(SELECT sn.ClientID , sn.FileNo, sn.ClaimNo, sn.TransEstimate, sn.TransType, ROW_NUMBER() OVER (PARTITION BY sn.TransType, sn.ClientID, sn.FileNo, sn.ClaimNo ORDER BY sn.ClientID, sn.FileNo, sn.ClaimNo)
FROM VieClaimTrans AS sn)

SELECT m.ClientID, m.FileNo, m.ClaimNo, m.TransType, 
   ISNULL(sLag.TransEstimate, 0) AS prevEstimate,
  (m.TransEstimate - ISNULL(sLag.TransEstimate, 0)) AS movement
FROM TrnClaimTrans AS m

LEFT OUTER JOIN cteMain AS sLag
ON sLag.ClientID = m.ClientID
AND sLag.FileNo = m.FileNo
AND sLag.ClaimNo = m.ClaimNo
AND sLag.sn = m.sn-1

4

1 に答える 1

0

ROW_NUMBER() の前にカンマがありません

;WITH cteMain AS

(SELECT sn.ClientID , sn.FileNo, sn.ClaimNo, sn.TransEstimate, 

--row_number() の前にコンマを追加する必要があります。

sn.TransType, ROW_NUMBER() OVER (PARTITION BY sn.TransType, sn.ClientID, 
sn.FileNo,sn.ClaimNo ORDER BY sn.ClientID, sn.FileNo, sn.ClaimNo) '[ROWNAME]'

--row_number() の後に変数名を追加します

FROM VieClaimTrans AS sn)

SELECT m.ClientID, m.FileNo, m.ClaimNo, m.TransType, 
ISNULL(sLag.TransEstimate, 0) AS prevEstimate,
(m.TransEstimate - ISNULL(sLag.TransEstimate, 0)) AS movement
FROM TrnClaimTrans AS m

LEFT OUTER JOIN cteMain AS sLag
ON sLag.ClientID = m.ClientID
AND sLag.FileNo = m.FileNo
AND sLag.ClaimNo = m.ClaimNo
AND sLag.sn = m.sn-1
于 2013-10-04T08:08:00.803 に答える