1

l & C2 つのフィールドでリンクされた 2つのテーブルがl.mIDありc.mID、c テーブルにはクエリで 3 種類のレコードが保持cs, ls, & vsされます。l からすべてのレコードを選択する必要があり、クエリの一部として の合計を示す 3 つの列がありますcs, ls & vs

これまでのところ、私は外部結合を使用しています:

SELECT l.*, COUNT(*) FROM l LEFT OUTER JOIN c ON c.mID = l.mID WHERE l.mID = 2

しかし、これは1つの列に完全な合計を追加するだけで、どんな助けにも感謝します.

4

2 に答える 2

2

CASEカウントでステートメントを使用できます。

select
  l.*
  ,COUNT(CASE WHEN c.type = 'cs' then 1 END) as cscount
  ,COUNT(CASE WHEN c.type = 'ls' then 1 END) as lscount
  ,COUNT(CASE WHEN c.type = 'vs' then 1 END) as vscount
from l
left outer join c on c.mID = l.mID
where l.mID = 2
于 2012-07-24T15:13:17.070 に答える
1
select
  l.*
  ,sum(c.type = 'cs') as cscount
  ,sum(c.type = 'ls') as lscount
  ,sum(c.type = 'vs') as vscount
from l
left outer join c on c.mID = l.mID
where l.mID = 2
于 2012-07-24T15:16:56.807 に答える