【发布时间】:2015-01-18 20:01:10
【问题描述】:
我目前在 SQL Server 中有两个单独的查询,用于计算一个表在一周内包含唯一 ID 的次数。我想使用一个查询来显示这些,而不是两个。
此数据保存在两个单独的视图中,因此我编写了两个查询。它们是ActivityPointer 和Asp_dealercallreport。
查询 #1:
SELECT
OwnerIDName,
COUNT(Distinct ActivityID) AS CalendarEvents
FROM
ActivityPointer
WHERE
/*Specify Activity code for Calendar Events*/
ActivityTypeCode = '4201'
/*Specify Calendar Events from this week only*/
AND ScheduledStart >= DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) / 7 * 7, 0)
AND ScheduledStart <= DATEADD(DAY, DATEDIFF(DAY, -1, GETDATE()), 0)
/*Specify users to be reported on by Name*/
AND OwnerIdName IN ('John Doe', 'Jane Doe')
GROUP BY
OwnerIDName
查询 #2:
SELECT
OwnerIDName,
COUNT(Distinct Asp_dealercallreportId) AS DealerVisits
FROM
Asp_dealercallreport
/*Specify Calendar Events from this week only*/
WHERE
asp_callreportdate >= DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()) / 7 * 7, 0)
AND asp_callreportdate <= DATEADD(DAY, DATEDIFF(DAY, -1, GETDATE()), 0)
/*Specify to be reported on by Name*/
AND OwnerIdName IN ('John Doe', 'Jane Doe')
GROUP BY
OwnerIDName
谢谢
【问题讨论】:
-
通常,你可以使用一些系统表,它只包含一行或创建一个临时的,然后将两个查询作为子查询来解决,这样你就会有一行,两个字段相同的查询。
标签: sql sql-server join count