1

我想结合我的 2 个 sql 结果和另外 1 个过滤器,即日期。如何组合我的这 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/PI 获取

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/PI 获取

TotalVisits
60

现在,O/PI 想要的是

UniqueUsers  TotalVisits  Month
3               60        March
4               50        April

3 是唯一的用户数(abc,xyz,def),而 TotalVisits 是所有 UsersVisit 的计数

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

4

1 回答 1

2

结合您的 select 子句并使用 datename 和 datepart 函数

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

在您的显示代码中,不要显示排序列。此外,如果您的搜索期超过一年,您可能希望将年份纳入等式。

于 2015-07-03T19:28:14.627 回答