【发布时间】:2014-07-26 10:15:24
【问题描述】:
为我的跳伞俱乐部做一些统计页面我有两个想要合并的 SQL 查询。 一个显示了今年第一次加载时跳跃次数最多的前三名跳线:
select top 3 ROW_NUMBER() OVER(ORDER BY count(1) desc) AS Nr
, vc.sCust as Name
, count(1) as JumpsCount
from dbo.ViewInvoice vi with(nolock)
join dbo.viewCust vc
on vi.wCustId = vc.wCustId
where year(vi.dtProcess) = year(getdate())
and vi.nMani = 1
group by vc.sCust
order by count(1) desc
输出:
-- Nr Name JumpsCount
-- 1 Tom Awesome 17
-- 2 Alan Jackson 16
-- 3 John Thebest 13
下一个查询显示了在数据库中跳跃的所有年份:
select distinct year(vi.dtProcess) As Datum
from dbo.ViewInvoice vi
order by 1
输出:
-- Datum
-- 2010
-- ...
-- 2014
我想要的是获得一个将结果与如下输出合并的查询:
-- Datum Nr Name Jumpscount
-- 2010 1 Some OldVeteran 100
-- 2010 2 Alan Jackson 96
-- 2010 3 Gordon McGann 89
-- ...
-- 2014 1 Tom Awesome 17
-- 2014 2 Alan Jackson 16
-- 2014 3 John Thebest 13
【问题讨论】:
标签: sql-server join count group-by