2011-07-11 15 views
1

誰かが手を貸すことができますか?レコードがアクティブで、作成されたレコードの日付が今日の日付よりも小さい場合、所有者IDに基づいて現在データを返すこのtsqlスクリプト(下に表示)があります。私はその後、データをまとめてグループ化しています。私が達成したいのは、会社ごとに最新のレコードを返すことです。TSQLのグループ化/ヘルプの選択

現在、私が返すデータがこれです:

COMPANY A JOE BLOGS NULL 10088 Green NULL NULL 21/07/2007 16:57 Phone Call 
COMPANY B JOE BLOGS NULL 10059 Green NULL NULL 20/07/2007 14:57 Phone Call 
COMPANY B JOE BLOGS NULL 10059 Green NULL NULL 18/07/2006 09:47 E-mail 
COMPANY B JOE BLOGS NULL 10059 Green NULL NULL 19/07/2006 13:19 E-mail 
COMAPANY C JOE BLOGS NULL 10866 Green NULL NULL 17/08/2007 12:57 Phone Call 
COMAPANY C JOE BLOGS NULL 10866 Green NULL NULL 13/08/2007 10:59 E-mail 
COMAPANY C JOE BLOGS NULL 10866 Green NULL NULL 15/08/2007 14:57 E-mail 

これは私がデータを返すようにする方法です:

COMPANY A JOE BLOGS NULL 10088 Green NULL NULL 21/07/2007 16:57 Phone Call 
COMPANY B JOE BLOGS NULL 10059 Green NULL NULL 20/07/2007 14:57 Phone Call 
COMAPANY C JOE BLOGS NULL 10866 Green NULL NULL 17/08/2007 12:57 Phone Call 

誰かが、正しい方向に私をしてくださいポイントもらえますか?

SELECT fa.name, fa.owneridname, fa.new_technicalaccountmanageridname, fa.new_customerid, fa.new_riskstatusname, 
fa.new_numberofopencases, fa.new_numberofurgentopencases, fap.actualend, fap.activitytypecodename, fap.createdby, fap.createdbyname 
FROM FilteredAccount fa 
INNER JOIN FilteredActivityPointer fap ON fa.accountid = fap.regardingobjectid 
WHERE fa.statecodename = 'Active' 
    AND fap.ownerid = '0F995BDC' 
    AND fap.createdon < getdate() 

GROUP BY fa.name, fa.owneridname, fa.new_technicalaccountmanageridname, fa.new_customerid, fa.new_riskstatusname, 
fa.new_numberofopencases, fa.new_numberofurgentopencases, fap.actualend, fap.activitytypecodename, fap.createdby, fap.createdbyname 

答えて

0

まさに私が望んだものの線に沿って、この

SELECT * FROM (
SELECT fa.name, fa.owneridname, fa.new_technicalaccountmanageridname, fa.new_customerid, fa.new_riskstatusname, 
fa.new_numberofopencases, fa.new_numberofurgentopencases, fap.actualend, fap.activitytypecodename, fap.createdby, fap.createdbyname , 
RN = ROW_NUMBER() OVER (PARTITION BY fa.name ORDER BY fap.createdby DESC) 
FROM FilteredAccount fa 
INNER JOIN FilteredActivityPointer fap ON fa.accountid = fap.regardingobjectid 
WHERE fa.statecodename = 'Active' 
    AND fap.ownerid = '0F995BDC' 
    AND fap.createdon < getdate() 
) a WHERE RN = 1 
+0

厥してみてください。しかし、私はそれを実行しようとすると、 "キーワード 'の近くに誤った構文があります。"私はそれを見て、私によく見える。私は内部の選択罰金を実行し、行番号を返すことができます! –

+0

今後の参考に何が間違っているかを知りました。から外側の選択を選択するテーブルを宣言する必要があります!助けとスクリプトのための乾杯:) –

+0

修正されました。私の悪い。 –