1

SSRS で次のサンプル クエリを使用すると、月が単一の数値 (1 ~ 12) として返されます。私が望むのは、2000 年 1 月のような日付を表示することです。コードを変更して、単一の月から MMM YYYY 形式にフォーマットできるようにするにはどうすればよいですか? Visual Studio 自体で書式設定を試みましたが、現在 MMM YYYY として返されています。

select distinct count(*) as Count,
    con.STATE,
    month(con.sub_Date) as Month,
    year(con.sub_Date) as Year
    from contract con

    group by con.STATE,month(con.sub_date),year(con.sub_date)
4

3 に答える 3

2

以下をクエリに追加して、事前にフォーマットされた月/年をレポート データセットの一部として返すことができます。レポート レベルで再構築するよりも簡単かもしれません。

select distinct count(*) as Count,
  con.STATE,
  month(con.sub_Date) as Month,
  year(con.sub_Date) as Year,
  left(datename(mm, sub_Date), 3) + ' ' + cast(year(sub_Date) as char(4)) as MonthYear
from contract con
group by con.STATE,
  month(con.sub_date),
  year(con.sub_date),
  left(datename(mm, sub_Date), 3) + ' ' + cast(year(sub_Date) as char(4))
于 2013-03-12T14:42:06.597 に答える
2

私は通常、部分的な日付を取得するために CONVERT を使用することを好みますが、MON YYYY 出力をきれいに残す CONVERT 日付形式は見当たりません。ただし、フォーマット 106 を使用すると、ほとんどの場合、その目的を達成できます。したがって、それを RIGHT() と組み合わせると、探している形式の日付が得られます。

SELECT  DISTINCT
        COUNT(*) AS Count ,
        [con].[STATE] ,
        MONTH([con].[sub_Date]) AS Month ,
        YEAR([con].[sub_Date]) AS Year ,
        RIGHT(CONVERT(CHAR(11), [con].[sub_Date], 106), 8) AS MonthYear
FROM    [dbo].[contract] AS con
GROUP BY [con].[STATE] ,
        MONTH([con].[sub_Date]) ,
        YEAR([con].[sub_Date]) ,
        RIGHT(CONVERT(CHAR(11), [con].[sub_Date], 106), 8)
于 2013-03-12T15:13:30.437 に答える
2

レポート レベルで日付の書式設定を実行することを強くお勧めします。

クエリからの日付を目的の期間の最初の日付として返しますが、プレースホルダー/テキスト ボックスの書式文字列を設定します。

これを行う理由は、レポートを Excel にエクスポートするときに、並べ替えとデータ操作が期待どおりに機能するようにするためです。

したがって、クエリを次のように使用します。

SELECT DISTINCT
    COUNT(*) AS Count ,
    con.STATE ,
    DATEADD(MONTH, DATEDIFF(MONTH, 0, con.sub_Date), 0) AS FirstOfMonth
FROM
    contract con
GROUP BY
    con.STATE ,
    DATEADD(MONTH, DATEDIFF(MONTH, 0, con.sub_Date), 0)

次に、グループ化のためのコンポーネントが必要な場合は、表示用などのレポートで書式設定コードを使用しMMM, YYYY、日付を分割します。=Month(fields!FirstOfMonth.Value)これにより、ユーザーは必要に応じてデータを適切にピボットできます。

日付の書式設定はプレゼンテーション ロジックであり、可能であれば SQL から除外する必要があります。

于 2013-03-12T16:09:18.433 に答える