0


電気メーターを2つ持っています。それらの値は、MSSQL 2008 データベースに記録されます。テーブルのデザインはこんな感じ

TimeStamp               MeterID   Count

2013-09-28 00:00:10     BA123     1453.034
2013-09-28 00:01:12     BA123     1454.770
2013-09-28 00:00:14     BB777     2351.000
...
2013-09-28 23:59:50     BA123     1470.120
2013-09-29 00:00:05     BA123     1470.445

次のように、1日あたりの消費量を取得する必要があります

2013-09-28     BA123     17.411

しかし、これを実現する方法がわかりませんか?

編集:「カウント」は連続した値です

4

1 に答える 1

1

CASTTimeStamp 列を次のようDATEにグループ化できます。

WITH    SampleData  AS
(
        SELECT  [TimeStamp], [MeterID], [Count]
        FROM    (   VALUES
                    ('2013-09-28 00:00:10', 'BA123', 1453.034),
                    ('2013-09-28 00:01:12', 'BA123', 1454.770),
                    ('2013-09-28 00:00:14', 'BB777', 2351.000),
                    ('2013-09-28 23:59:50', 'BA123', 1470.120),
                    ('2013-09-29 00:00:05', 'BA123', 1470.445)
                )   AS SampleData([TimeStamp], [MeterID], [Count])
)
SELECT      MeterId, CAST([TimeStamp] AS DATE) AS [DateConsumption],
            MAX([Count]) - MIN([Count]) AS [CountConsumption]
FROM        SampleData
GROUP BY    MeterID, CAST([TimeStamp] AS DATE)
--WITH ROLLUP
于 2013-11-08T13:45:19.933 に答える