この質問のフレーズにはどのような正しい方法があるのかよくわかりませんが、これは意味があると思います。日付範囲内で四半期ごとにレコード数をカウントする
SELECT
c.ID,
c.Name,
c.DateAdded,
c.LastContact
FROM
computers AS c
WHERE
LENGTH(DateAdded) > 1
ORDER BY
DateAdded ASC;
返します:
ID Name DateAdded LastContact
1 MUTHER 9/2/2012 1:23 5/17/2016 13:57
5 VGER 12/19/2012 10:44 5/17/2016 13:56
7 HELPER 1/13/2013 18:09 5/17/2016 13:57
9 JARVIS 1/15/2013 0:28 7/31/2015 0:20
12 PHLFS1 1/17/2013 18:41 2/17/2013 13:37
を私はコンピュータがこのクエリを四半期で追加された日付をカウントすることができる午前:
SELECT
YEAR(DateAdded) AS YEAR,
QUARTER(DateAdded) AS QUARTER,
COUNT(ComputerID) AS 'added-during-qtr'
FROM
computers
WHERE
LENGTH(DateAdded) > 1
GROUP BY
YEAR(DateAdded),
QUARTER(DateAdded)
ORDER BY
YEAR(DateAdded),
QUARTER(DateAdded)
私に与え、私は、クエリを持っていますいつ活性化されたかのカウント:
year quarter added-during-qtr
2012 3 1
2012 4 1
2013 1 3
しかしませ彼らは私が本当に探しているものです四半期かに関係なく、中にアクティブであった場合:
year quarter active-during-qtr
2012 3 1
2012 4 2
2013 1 5
2013 2 4
私は疑問に正しい道を尋ねたりないけどよかどうかわからないんだけど日の終わりに、DateAddedとLastContactの間で「アクティブ」だったコンピュータの数を年と四半期でソートしたいと考えています。理想的には、caseステートメントに範囲を手動で追加する必要はありません。前もって感謝します。
コンピュータはその後、「アクティブ」だった場合どのようにあなたが知っていますか?あなたの投稿に現在表示されていないか、別の方法で定義されている別の列がありますか?あなたの質問を手伝うためには、この情報を知る必要があります。 – Fuzzzzel
@Fuzzzzelと同じだと思います。 'Deactivate'カラムでなければなりませんが、他の賢明な方法では、5台のコンピュータが2013年の第1四半期から次の四半期までに有効になった後に、どのように4 –
を探していますか?** 2013 2 4 **しかし、2013年のデータはありませんあなたのテーブルのQ2 – Alex