0

基本上,我想实现每个月,就像在这个例子中,从 2013 年 1 月到 2013 年 3 月,每个用户的 Max(Most_Recent_Day) 是多少。

例如,从 1 月到 3 月,数据库中的每个月,系统都会为每个用户捕获 Most_Recent_Day。

以下是预期结果:

User                 | Most_Recent_Day
--------------------------------
afolabi.banu         | 1/31/2013
afolabi.banu         | 2/7/2013
afolabi.banu         | 3/21/2013
mario.sapiter        | 1/22/2013
mario.sapiter        | 2/7/2013
mario.sapiter        | 3/11/2013

但是,我还希望显示另一个 DB 列。下面是该列。

User|Total_Hits | Recent_Month| Most_Recent_Day | Most_Recent_Days_Hits

我尝试使用内部联接,但结果不是我所期望的。我得到了重复的用户名,并且最近一天重复了。基本上,我只想显示相同用户名的不重复记录。

下面是我得到的结果。请忽略 recent_month 值,因为它是来自数据库的数据。

User          |Total_Hits | Recent_Month   | Most_Recent_Day | Most_Recent_Days_Hits
-------------------------------------------------------------------------------------
afolabi.banu  | 223   |   25       |   2/7/2013      |  5
afolabi.banu  | 223   |   25       |   2/7/2013      |  5
afolabi.banu  | 211   |   13       |   1/31/2013     |  3
afolabi.banu  | 223   |   25           |   2/7/2013      |  5
afolabi.banu  | 296   |   31       |   3/21/2013     |  1
afolabi.banu  | 296   |   31           |   3/21/2013     |  1
mario.sapiter | 95    |   7        |   2/7/2013      |  5
mario.sapiter | 7     |   7        |   3/21/2013     |  1
mario.sapiter | 7     |   37           |   3/22/2013     |  1
mario.sapiter | 249   |   37       |   2/7/2013      |  5

这是我的 SQL 代码

SELECT t.[User],
t.Total_Hits,
t.Recent_Month,
t.Most_Recent_Day, 
t.Most_Recent_Day_Hits FROM UserUsageMonthly t
INNER JOIN 
(
select  
[User]
, max(Most_Recent_Day) as Most_Recent_Day
from UserUsageMonthly (NoLock)
where Application_Name='Daily Production Review' and Site_Collection='wrm13' 
and Most_Recent_Day between '1/1/2013' and '3/31/2013'  
group by [User], datepart(month,Most_Recent_Day) 
) table2
ON
t.[User]=table2.[User]
AND t.Most_Recent_Day = table2.Most_Recent_Day 
order by t.[User]
4

1 回答 1

0

您应该将月份值添加到您的 SQL SELECT

SELECT 
MONTH(t.Most_Recent_Day) as 'MyMonth',
t.[User],
t.Total_Hits,
t.Recent_Month,
t.Most_Recent_Day, 
t.Most_Recent_Day_Hits FROM UserUsageMonthly t

然后你可以按月份列分组

GROUP BY MyMonth
于 2013-04-02T16:04:45.263 回答