1 つのクエリを使用してテーブルから 2 つの個別の「カウント」合計を取得する方法があるかどうか疑問に思っていました。つまり、次のようなテーブルを使用して、各コード (個別) を取得し、ステータスの総数が X または D と等しくないことを示し、ステータスの総数が等しいことを示す列を追加したいと考えています。 X または D に変更され、キャンセル日が特定の日付 (たとえば、過去 14 日間) より後です。
テーブル:
Code: Status Cancel_Date
-----------------------------------
AAA X 2012-02-01
AAA
BBB X 2012-02-01
AAA D 2012-01-01
AAA
BBB
BBB D 2012-02-01
BBB X 2012-01-01
結果の例 (上記のデータに基づく):
Code: TotalNotXorD TotalXorD
------------------------------------
AAA 2 1
BBB 1 2
TotalNotXorD: 例
select code, count(*)
from table
where status not in('X','D')
group by code
TotalXorD: 例
select code, count(*)
from table
where status in('X','D')
and cancel_date >= '2012-02-01'
group by code
サブクエリなどを調べましたが、必要な結果が得られないようです。
何か案は?
ありがとう。