問題を正しく説明する方法がわかりません。サブクエリを使用してProducerCodeフィールドのみを表示します。 しかし、今は基本的にシーケンス番号を持つ行識別子が必要ですが、ROW_NUMBER関数を使用すると奇妙な数字が返されます。 SQL 2012を使用して、ここでSSRS 2010 が私のコードです:重複したIDがクエリに含まれていない場合、シーケンシャルなROW_NUMBERを表示する方法
;WITH cte_Counts --C
AS
(
SELECT ROW_NUMBER() OVER (ORDER BY ProducerCode) as RowNum,
ProducerCode,
ProducerName,
COUNT (distinct ControlNo) as Submissions,
SUM(CASE WHEN QuotedPremium IS NOT NULL THEN 1 ELSE 0 END) as Quotes,
SUM(CASE WHEN Status IN ('Bound','Cancelled','Notice of Cancellation','Non-Renewed') THEN 1 ELSE 0 END) AS Binds,
SUM(CASE WHEN Status = 'Declined' THEN 1 ELSE 0 END) as Declines
FROM ClearanceReportMetrics
WHERE YEAR(EffectiveDate)=2016
AND CompanyLine = 'Arch Insurance Company'
GROUP BY ProducerCode,ProducerName
)
SELECT * FROM
(
SELECT RowNum,
ROW_NUMBER() OVER (PARTITION BY ProducerCode ORDER BY Submissions DESC) as num,
ProducerCode,
ProducerName as 'Producer',
Submissions,
Quotes,
Binds,
Declines,
COALESCE(CAST(Binds as FLOAT) /NULLIF(Submissions,0),0) as 'Sub. to Bind',
COALESCE(CAST(Quotes as FLOAT) /NULLIF(Submissions,0),0) as 'Sub. to Qt',
COALESCE(CAST(Binds as FLOAT) /NULLIF(Quotes,0),0) as 'Qt to Bind',
COALESCE(CAST(Declines as FLOAT) /NULLIF(Submissions,0),0) as 'Sub to Dec'
FROM cte_Counts
) a
WHERE a.num=1
ORDER BY
Submissions DESC
私が表現
=RowNumber(Nothing)
とSSRSにそれを達成しようとしたが、それは同様の番号をスキップ:
シーケンス番号だけを表示するにはどうすればよいですか?
RowNumとして 'ROW_NUMBER()OVER(ORDER BY(SELECT 100))を試してみてください。また、外側のorder byはcteのRowNum列の値をソートしていないことにも注意してください。データセットまたはタブリックスの追加のフィルタによってシーケンスが制動されます。 –
私は最後のOrder Byを離し、RowNumとして 'ROW_NUMBER()OVER(ORDER BY(SELECT 100))を使用しましたが、シーケンスはまだ壊れています。 – Oleg