1

グループカテゴリと次のような詳細を含むデータを返すクエリがあります。

Category | Title
==================
cat1  ---  titlex
cat1  ---  titley
cat2  ---  titley
cat3  ---  titlez
cat3  ---  titlex
cat4  ---  titlex

次のように、外側のグループ (カテゴリ) に行番号を持つテーブルを表示したい:

RN | Category | Title
======================
1    cat1  
                titlex
                titley
2    cat2
                titley
3    cat3
                titlez
                titlex
4    cat4 
                titlex

問題は、SQLクエリまたはROWNUMBER SSRS関数でRN列をROW_NUMBERとして追加すると(念のため、スコープとしてNOTHING、Group、およびDetailsを試しました)、RN列に対して常に2 1 2または1 3 4 6のような数値を取得することです.

EDIT Sql Query (わかりやすくするためにテーブル名とプロパティを変更)

SELECT    
        -- this rownumber does not work, counts every occurrence of category    
    --ROW_NUMBER() OVER (
        --PARTITION BY c.Name -- tried this too, this resets on each cat
        --ORDER BY c.Name) AS RN,
    c.Name, 
    p.Name
FROM
    Products p INNER JOIN
    Categories c ON p.CategoryId = c.Id
GROUP BY c.Name, p.Name
ORDER BY c.Name, p.Name
4

2 に答える 2

3

行番号は必要ありません (ご覧のとおり、行番号はすべての... ええと... 行に割り当てられています)。

多分あなたがしたいDENSE_RANKですか?

SELECT    
    DENSE_RANK() OVER (ORDER BY c.Name) AS RN,
    c.Name, 
    p.Name
FROM
    Products p INNER JOIN
    Categories c ON p.CategoryId = c.Id
GROUP BY c.Name, p.Name
ORDER BY c.Name, p.Name

目的の出力に関しては、SQL でそれを達成しようとはしません。レポート/書式設定ツールを使用して、最終的なレイアウトを取得します。

于 2012-04-04T06:29:45.080 に答える
2

これは、SSRS のプレゼンテーション レイヤーでも実現できます。

=RunningValue(Fields!CategoryFieldName.Value, CountDistinct, Nothing)
于 2012-04-04T14:20:16.500 に答える