次の形式でデータを表示する必要があります。
データを表示するために 08-2013 の日付を選択するとします。実際にはこれは消費者データです。そのため、この月の列は 2013 年 8 月のデータ (カウント OR SUM) を計算し、4 月の列は2013年 4 月から2013年 8 月までのデータ (カウント OR SUM) を計算する必要があります。
だから今私の問題は、この結果セットを取得するためにT-SQLをどのように書くことができるかということです. 今月のデータと4 月のデータを別々に計算できますが、これら 2 つの結果を 1 つの結果セットにマージする方法を教えてください。
この結果セットを取得するには、テーブルを作成する必要がありますか?
PS
では、最初の行の例を取り上げます 1) サンプル テキスト 1は、今月と4 月からの個々の計算を表すためのもの
DECLARE @BILL_DATE DATETIME
SET @BILL_DATE= '2013-08-15'
--Seprate result set for THIS MONTH and ROW For Sample text 1
SELECT
ISNULL(COUNT(CASE WHEN CAT_CODE='1' THEN C.CONSUMER_NO END),0) AS CAT_1_THIS_MONTH,
ISNULL(COUNT(CASE WHEN CAT_CODE='2' THEN C.CONSUMER_NO END),0) AS CAT_2_THIS_MONTH,
ISNULL(COUNT(CASE WHEN CAT_CODE='3' THEN C.CONSUMER_NO END),0) AS CAT_3_THIS_MONTH
FROM CONSUMER C
INNER JOIN BILLING B ON C.CONSUMER_NO = B.CONSUMER_NO
WHERE B.BILL_DATE = @BILL_DATE AND (more condition will be as per For Sample text 1)
--Seprate result set for FROM APRIL and ROW For Sample text 1
SELECT
ISNULL(SUM(CASE WHEN CAT_CODE='1' THEN C.UNIT END),0) AS CAT_1_FROM_APRIL,
ISNULL(SUM(CASE WHEN CAT_CODE='2' THEN C.UNIT END),0) AS CAT_2_FROM_APRIL,
ISNULL(SUM(CASE WHEN CAT_CODE='3' THEN C.UNIT END),0) AS CAT_3_FROM_APRIL
FROM CONSUMER C
INNER JOIN BILLING B ON C.CONSUMER_NO = B.CONSUMER_NO
WHERE B.BILL_DATE BETWEEN '2013-04-01' AND @BILL_DATE AND (more condition will be as per For Sample text 1)
ここでの目的は、これら 2 つの個別の結果を 1 行 2 列 (つまり、今月と 4 月から) に表示することです。