Помогите с сводным запросом - PullRequest
0 голосов
/ 16 августа 2011

У меня есть настройка просмотра на SQL Server, которая выводит записи таким образом

id   time       winnerId
-------------------------------
35  1313114959  1
36  1313116182  1
37  1313116397  1
38  1313116596  2
39  1313116807  1
40  1313116858  1
41  1313116908  1
42  1313117708  2
46  1313118441  1
47  1313118719  1
48  1313120938  1
49  1313123767  1
50  1313159321  3

Теперь, когда я запрашиваю другую таблицу tbl_players, я хочу взять его идентификатор и подсчитать, сколько игр онвыиграл и отображается справа от него.tbl_player

id    name
-----------
1    jack
2    hugh
3    man    

Я хочу получить результаты, таким образом

id    name    win
-----------------
1    jack    9
2    hugh    2
3    man     1   

Необходимо подсчитать общее количество выигрышей, со ссылкой на представление, давайте назовем его view_winner

Как написать такой запрос?

Ответы [ 3 ]

0 голосов
/ 16 августа 2011

Вы можете объединить таблицы вместе и group by подсчитать количество побед:

select  p.id
,       p.name
,       count(w.winnerId)
from    tbl_players p
left join
        view_winner w
on      p.id = w.winnerId
group by
        p.id
,       p.name
0 голосов
/ 16 августа 2011

Вам не нужен пивот для этого выхода;

select 
    p.id as id,
    p.name as name,
    count(*) as win
from view_winner
    inner join tbl_player p on (p.id = winnerId)
group by p.id, name
order by p.id
0 голосов
/ 16 августа 2011

вы присоединяетесь к двум столам вместе и подсчитываете, сколько раз идентификатор победителя существует для каждого игрока

select p.id, p.name, count(w.winnerid)
from tbl_player p inner join someview w on w.winnerid = p.id
group by p.id, p.name, w.winnerid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...