SQL Server 2005 データベースでストアド プロシージャを実行する Crystal Reports XI Developer でレポートを作成しています。レコード セットは、日と時間でグループ化されたログ テーブルから要約を返します。
現在、私のクエリは次のようになります。
SELECT
sum(colA) as "Total 1",
day(convert(smalldatetime, convert(float, Timestamp) / 1440 - 1)) as "Date",
datepart(hh, convert(smalldatetime, convert(float, Timestamp) / 1440 - 1)) as "Hour"
`etc...`
GROUP BY
Day, Hour
日付の狂気は無視してください。システム設計者は、日付を保存する方法を考え出したときに、かなりの量を飲んでいたと思います。
私の問題は次のとおりです。1 日の各時間の記録が常にあるとは限らないため、最終的にギャップが生じますが、これは理解できますが、Crystal が 24 時間全体について報告できるようにしたいと考えています。データかどうか。
クエリ全体をWHILE
(ストアド プロシージャ内で) ループに入れて、個々の時間にクエリを実行することで、これを変更できることはわかっていますが、私の中では、1 つのクエリが 24 よりも優れていると言っています。
通常のようにテーブル内の行を反復処理するのではなく、Crystal を 1 日の時間単位で反復処理させる方法があるかどうかを知りたいです。
または、データベース サーバーを強制終了せずに空の時間行が含まれるようにクエリをフォーマットする方法はありますか?