2017-08-16 85 views
0

的改變觀點我不確定究竟如何詞組這個問題......但實際上,我已經存儲在它的數據類似於下面的表格:SQL查詢返回現有表

enter image description here

TYPE#= 219人

TYPE#= 224行動

理想情況下,我想運行一個查詢,會從上面的表中返回下面的結果|從本質上講,人與然而,許多類型的計數一起名稱:

enter image description here

我不要求爲徹底解決(我知道這個網站是不是爲) - 我只是不」不知道要去哪裏或尋找有關這類問題的信息。我對編寫SQL很陌生,在花費了很多這個問題之後,我會非常感謝你向正確的方向發展。

回答

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.NAME <> b.NAME甚至and a.[TYPE NUM]<> b.[TYPE NUM]根據您的文章。

+0

謝謝您的回覆。我正在閱讀關於自我加入的內容,並對所有資源感到困惑......我現在就給這個鏡頭,並且會回覆你! – gonzzz

+0

工作就像一個魅力 - 非常感謝你!我確實必須添加一個where子句「WHERE TYPE_NUM = 219」,以便僅返回人名。再次感謝。 – gonzzz

+0

啊好趕上@gonzzz。我忘了那部分哈哈。 – scsimon