sql >> データベース >  >> RDS >> Sqlserver

次の SQL Server クエリが 14 か月のデータではなく 12 か月のデータを返す理由

    ad.xDate の月と年の両方の部分でグループ化する必要があります。 1 年は 12 か月しかなく、結果の最初の 2 (14 - 2) か月の合計が大きすぎます。これは、実際には 2 つの暦月の組み合わせを表しているためです。

    どの月にも 14 日以上あるため、元のバージョンでは機能していました。古いクエリを 31 日 (月によっては 28、29、30 日) を超えて延長しようとすると、同じ問題が再び発生します。

    ...
    SELECT
        'playing' As activity,
        min(ad.xDate) As xDate, 
        Isnull(sum(t.TimePerDay), 0) As TimePerDay
    FROM AllDates As ad Left Outer Join @test As t On ad.xDate = t.date
    GROUP BY Year(ad.xDate), Month(ad.xDate) /* <--- change here */
    ORDER BY xDate
    


    1. C#DataTableに非同期でデータを入力する

    2. Laravel4クエリビルダー-groupByMaxDate

    3. 複数の基準を持つ検索機能-PHP/MySQL

    4. AccessはODBCデータソースとどのように通信しますか?パート4