日ごとにグループ化された注文のテーブルを含むSSRSレポートを作成しています。これで、SSRS MAX()関数を使用して、その日の最大注文値を簡単に取得し、グループヘッダーに配置できます。
ただし、この注文を行った対応する顧客名も取得し、これをグループヘッダーにも配置したいと思います。
結果セットには、日付、名前、注文値が含まれていると想定できます。SSRS 2008でこれを行う方法はありますか?
ありがとう
日ごとにグループ化された注文のテーブルを含むSSRSレポートを作成しています。これで、SSRS MAX()関数を使用して、その日の最大注文値を簡単に取得し、グループヘッダーに配置できます。
ただし、この注文を行った対応する顧客名も取得し、これをグループヘッダーにも配置したいと思います。
結果セットには、日付、名前、注文値が含まれていると想定できます。SSRS 2008でこれを行う方法はありますか?
ありがとう
怠惰な方法で実行し、Sql Server に結果を提供させます。たとえば、元のクエリが次のようなものだったとします。
SELECT OrderDate, OrderId, CustomerName, OrderValue
FROM OrderTable
WHERE (OrderDate >= @DateFrom) AND (OrderDate <= @DateTo)
これをその日のグループ化された結果と結合して、すべての行に表示されるようにします。
SELECT DT.OrderDate, DT.OrderId, DT.CustomerName, DT.OrderValue,
GT.OrderId AS MaxOrderId, GT.CustomerName AS MaxCustomerName, GT.OrderValue AS MaxOrderValue
FROM
(SELECT OrderDate, OrderId, CustomerName, OrderValue
FROM OrderTable
WHERE (OrderDate >= @DateFrom) AND (OrderDate <= @DateTo)) AS DT
INNER JOIN
(SELECT OrderDate, OrderId, CustomerName, OrderValue
FROM OrderTable AS OrderTable_1
WHERE (OrderDate >= @DateFrom) AND (OrderDate <= @DateTo) AND (OrderId =
(SELECT TOP 1 OrderId
FROM OrderTable AS OrderTable_2
WHERE (OrderDate = OrderTable_1.OrderDate)
GROUP BY OrderId
ORDER BY SUM(OrderValue) DESC))) AS GT ON DT.OrderDate = GT.OrderDate
ORDER BY DT.OrderDate, DT.OrderValue DESC
DT = 詳細テーブル
GT = グループ結果表
その日の最大値オーダーがすべての行に追加され、グループ ヘッダーに簡単に含めることができるようになりました。明らかに、CustomerName が別のテーブルから取得された場合、元のクエリと OrderTable_1 クエリでそのテーブルを結合するだけで済みます。
このクエリは、OrderDate フィールドが時間コンポーネントのない純粋な日付フィールドであることを前提としています。