0

毎日作成および更新されるイベントの数を反映するレポートのリクエストの書き込みに問題があります。

表には次のものが含まれます。

FieldTypeComment

id int (11) NOT NULL
name varchar (255) NULL
created_on datetime NOT NULL
updated_on datetime NOT NULL

作成日と更新日が一致しない場合があります。

リクエスト:

SELECT 
    z.date_created, 
    SUM (IF (z.date_created = z.date_updated, 1, 0)) AS created, 
    SUM (IF (z.date_created! = Z.date_updated, 1, 0)) AS updated
FROM 
(
    SELECT 
        SUBSTRING (e.updated_on, 1, 10) AS date_updated, 
        SUBSTRING (e.created_on, 1, 10) AS date_created 
    FROM 
        event e
) z
GROUP BY 
    z.date_created

次の結果が必要です。 ここに画像の説明を入力してください

すべての日付が表示されないため、目的の結果が得られません。

4

2 に答える 2

1

あなたが望むと仮定して

  • すべての日付を参照してください。
  • create実際に数えます。
  • updatecreate 以外の日付の場合にのみカウント:

http://www.sqlfiddle.com/#!2/56254/39

SELECT A.*
,(SELECT count(created_on) 
    FROM event WHERE date=created_on) created
,(SELECT sum(created_on<>updated_on) 
    FROM event WHERE date=updated_on) updated
FROM (
SELECT created_on date FROM event
UNION SELECT updated_on FROM event ) A
于 2013-02-10T12:33:12.180 に答える
0

特定の日に作成および更新されたイベントの数を取得するには、次のようにします。

select count(*) events
from event
where  
(created_on >= {d '2013-02-10'} and created_on < {d '2013-02-11'})
or
(updated_on >= {d '2013-02-10'} and updated_on < {d '2013-02-11'})

このアプローチでは、これらのフィールドの時間部分が考慮されます。

于 2013-02-10T13:40:01.600 に答える