2017-08-02 4 views
0

私は2つのテーブルTypeOfFruitや果物を持っているが、以下に見られるように(それはTypeOfFruitのFKを持っている):同じテーブル内の2つの異なる列の数を表示するクエリの方法は?

TypeOfFruit

ID  Name 
1  Apples 
2  Bananas 

はフルーツ

ID  TypeId  Expired 
1  1   FALSE 
2  1   TRUE 
3  1   TRUE 

は基本的に私は、ビューを作成したいです以下を使用してください:

FruitStats 

Name  total_num  total_expired 
Apples  3   2 
Bananas  0   0 

最初の数字はフルーツの各タイプの合計数で、2番目の数字はそのタイプの失効したフルーツの数です。

私はTOTAL_NUM取得するには、以下が出ている:

CREATE VIEW Fruit_Stats (name, total_num) 
AS SELECT t.name, COUNT(f.id) 
FROM TypeOfFruits t LEFT OUTER JOIN Fruits f ON f.type_id = t.id GROUP BY (t.id); 

しかし、それに加えて、期限が切れて困っ計算を持っていますが。どんな助けもありがとう!

答えて

0

あなたは近くです。 CASE声明では、ここに必要なものが得られます:

SELECT t.name, COUNT(f.id), SUM(CASE WHEN expired = "TRUE" THEN 1 ELSE 0 END) as total_expired 
FROM TypeOfFruits t LEFT OUTER JOIN Fruits f ON f.type_id = t.id GROUP BY (t.id); 
関連する問題