0

テーブルから毎日のレコードの数を取得したいと思います。たとえば、次のフィールド ID、EmpNo、DateHired を持つテーブル「Employee」があります。そして、私は次の記録を持っています

ID  EmpNo       DateHired
1   000001      3/2/2013 12:00:00 AM
2   000002      3/14/2013 12:00:00 AM
3   000003      3/14/2013 12:00:00 AM
4   000004      3/21/2013 12:00:00 AM
5   000005      4/2/2013 12:00:00 AM
6   000006      4/3/2013 12:00:00 AM
7   000007      4/3/2013 12:00:00 AM
8   000008      4/3/2013 12:00:00 AM
9   000009      4/3/2013 12:00:00 AM
10  000010      4/4/2013 12:00:00 AM
11  000011      4/5/2013 12:00:00 AM
12  000012      5/1/2013 12:00:00 AM

現在の月は 4 月ですが、この値を取得するにはどうすればよいですか。

Count   Day
0   4/1/2013 12:00:00 AM
1   4/2/2013 12:00:00 AM
4   4/3/2013 12:00:00 AM
1   4/4/2013 12:00:00 AM
1   4/5/2013 12:00:00 AM
0   4/6/2013 12:00:00 AM
0   4/7/2013 12:00:00 AM
0   4/8/2013 12:00:00 AM
Up to
0   4/30/2013 12:00:00 AM
4

3 に答える 3

1

月全体の日付を取得するには、4 月全体のカレンダーを作成する必要があります。を使用するCommon Table Expressionと、必要なものを取得できます。

カレンダーを作成した後、テーブルEmployeeを使用して結合しLEFT JOIN、日付がテーブルに一致しないようにしますEmployee。結果には引き続き含まれます。

WITH April_Calendar
AS
(
  SELECT CAST('20130401' as datetime) AS [date]
  UNION ALL
  SELECT DATEADD(dd, 1, [date])
  FROM   April_Calendar
  WHERE  DATEADD(dd, 1, [date]) <= '20130430'
)
SELECT a.date, COUNT(b.DateHired) totalCount
FROM   April_Calendar a
       LEFT JOIN Employee b
          ON a.date = b.DateHired
GROUP  BY a.date
ORDER  BY a.date
于 2013-04-05T06:19:57.237 に答える
0

これはクエリかもしれません...

SELECT COUNT(ID) as Count, DateHired FROM Employee GROUP BY DateHired

以下の場合に役立ちます...

http://www.sqlite.org/lang_datefunc.html

それが役に立てば幸い..

于 2013-04-05T06:15:19.583 に答える