2017-08-16 18 views
0

の変更されたビューを返すために、私は正確にどのようにフレーズの質問にわからないよ...しかし、本質的に、私は次のようにそれに格納されたデータを持つテーブルを持っている:SQLクエリ既存のテーブル

enter image description here

TYPE番号= 219人

TYPE番号= 224が理想的アクション

で、私は上記の表から、以下の結果を返しますクエリを実行したいです|基本的に、しかし、多くの種類の数と一緒に人の名前:

enter image description here

私は(私はこのサイトはそのためではありません知っている)あからさまなソリューションを求めていないよ - 私はちょうどドン」このタイプの問題に関連する情報を探す場所や場所を知っていません。私はSQLを書くのが初めてで、この問題をかなり勉強した後、正しい方向に微調整していただければ幸いです。

答えて

1

一方向は、自己結合による条件付き集計です。もう1つの方法はピボットです。

select 
    a.Name 
    ,sum(case when b.NAME = 'A' then 1 else 0 end) as A 
    ,sum(case when b.NAME = 'B' then 1 else 0 end) as B 
    ,sum(case when b.NAME = 'C' then 1 else 0 end) as C 
from 
    SomeTable a 
    inner join 
    SomeTable b on 
    a.[RECORD NUM] = b.[RECORD NUM] 
    and a.NAME <> b.NAME 
where type_num = 219 
group by 
    a.NAME 

また、あなたのポストに基づいてand b.[TYPE NUM] = 224かさえand a.[TYPE NUM]<> b.[TYPE NUM]and a.NAME <> b.NAMEを置き換えることができます。

+0

ありがとうございます。私は自己結合について読んでいて、そこにあるすべてのリソースと混同していました...私は今すぐこのショットを与えて、あなたに戻ってきます! – gonzzz

+0

魅力的なように働いた - ありがとう!私はwhere句を追加しなければならなかった "WHERE TYPE_NUM = 219"人の名前だけを返す。再度、感謝します。 – gonzzz

+0

ああ良いキャッチ@ gonzzz。私はその部分を忘れた。 – scsimon

関連する問題