2015-07-03 109 views
1

我想结合我的2个sql结果和1个更多的日期过滤器。 如何合并我的这2个sql查询。组合2 SQL查询结果

第一个SQL

SELECT e.Name,COUNT(l.userName) as UsersVisit 
    FROM Table1 l 
    INNER JOIN Table2 e on e.UserName =l.UserName 
    WHERE 
    (l.DateAccessed>'3-31-2015' and l.DateAccessed <'4-30-2015') 
    Group by e.Name 

O/P我得到

Name UsersVisit 
abc 10 
xyz 20 
def 30 

第二个SQL

SELECT COUNT(1) as TotalVisits 
    FROM Table1 l 
    INNER JOIN Table2 e on e.UserName =l.UserName 
    WHERE 
    (l.DateAccessed>'3-31-2015' and l.DateAccessed <'4-30-2015') 
    ORDER BY TotalVisits DESC 

O/P我得到

TotalVisits 
60 

现在,O/PI想是

UniqueUsers TotalVisits Month 
3    60  March 
4    50  April 

3是用户(ABC,XYZ,DEF)的唯一编号,同时TotalVisits是所有UsersVisit

我怎样才能得到这些计数结果?

+0

'group by usersvisit,month' ... –

回答

2

结合您的选择条款,并使用DATENAME和日期部分功能

select dateName(month, DateAccessed) "Month" 
, datePart(month, DateAccessed) sortColumn 
, count(1) totalVisits 
, count(distinct l.userName) UsersVisit 
from and where clause goes here 
group by dateName(monthDateAccessed) 
order by sortColumn 

在你的显示器的代码,不显示排序列。另外,如果您的搜索时间超过一年,您可能需要将该年纳入公式。

+0

我得到的错误是** DateAccessed'在选择列表中无效,因为它不包含在集合函数或GROUP BY子句中。** –