访问:计算两个连接表中的唯一记录
Access: Counting unique records in two joined tables
我有两个 table 看起来像这样:
Rep Client ID #
-------------------
Bob 100
Joe 200
Joe 201
Dave 300
Dave 301
Rep Client ID #
----------------
Jack 100
Joe 200
Joe 400
Dave 300
Dave 500
我需要做两件事:
计算每个 table 中每个代表分配了多少客户(ID #'s)。例如。对于 table 1,Bob 有 1 个,Joe 有 2 个,Dave 有 2 个。
从两个 table 中计算每个代表总共有多少个唯一客户。在上面的示例中,Bob 有 1 个,Joe 有 3 个,Dave 有 3 个,Jack 有 1 个。
我该怎么做???
您需要一个 GROUP BY
/Totals
查询。对于您的第一个要求,
SELECT
Rep,
Count(ClientID) As CountOfID
FROM
Table1
GROUP BY
Rep;
针对您的第二个要求。您将需要一个带 GROUP BY 的 UNION。
SELECT
TmpQ.Rep,
Count(TmpQ.ClientID) As CountOfID
FROM
(
SELECT
Table1.Rep,
Table1.ClientID
FROM
Table1
GROUP BY
Table1.Rep,
Table1.ClientID
UNION
SELECT
Table2.Rep,
Table2.ClientID
FROM
Table2
GROUP BY
Table2.Rep,
Table2.ClientID
) As TmpQ
GROUP BY
TmpQ.Rep;
要获取每个代表每个 table 的不同 clientids 的数量,您可以使用:
SELECT
sourcetable,
rep,
count(clientid)
FROM
(
SELECT
"table 1" as [sourcetable],
rep,
clientid
FROM
table1
GROUP BY 1,2,3
)
UNION ALL
SELECT
sourcetable,
rep,
count(clientid)
FROM
(
SELECT
"table 2" as [sourcetable],
rep,
clientid
FROM
table2
GROUP BY 1,2,3
)
不考虑 table:
只获取每个代表的不同 clientids 的数量
SELECT
rep,
count(clientid)
FROM
(
SELECT rep,clientid FROM table1
UNION
SELECT rep,clientid FROM table2
)
GROUP BY 1
我有两个 table 看起来像这样:
Rep Client ID #
-------------------
Bob 100
Joe 200
Joe 201
Dave 300
Dave 301
Rep Client ID #
----------------
Jack 100
Joe 200
Joe 400
Dave 300
Dave 500
我需要做两件事:
计算每个 table 中每个代表分配了多少客户(ID #'s)。例如。对于 table 1,Bob 有 1 个,Joe 有 2 个,Dave 有 2 个。
从两个 table 中计算每个代表总共有多少个唯一客户。在上面的示例中,Bob 有 1 个,Joe 有 3 个,Dave 有 3 个,Jack 有 1 个。
我该怎么做???
您需要一个 GROUP BY
/Totals
查询。对于您的第一个要求,
SELECT
Rep,
Count(ClientID) As CountOfID
FROM
Table1
GROUP BY
Rep;
针对您的第二个要求。您将需要一个带 GROUP BY 的 UNION。
SELECT
TmpQ.Rep,
Count(TmpQ.ClientID) As CountOfID
FROM
(
SELECT
Table1.Rep,
Table1.ClientID
FROM
Table1
GROUP BY
Table1.Rep,
Table1.ClientID
UNION
SELECT
Table2.Rep,
Table2.ClientID
FROM
Table2
GROUP BY
Table2.Rep,
Table2.ClientID
) As TmpQ
GROUP BY
TmpQ.Rep;
要获取每个代表每个 table 的不同 clientids 的数量,您可以使用:
SELECT
sourcetable,
rep,
count(clientid)
FROM
(
SELECT
"table 1" as [sourcetable],
rep,
clientid
FROM
table1
GROUP BY 1,2,3
)
UNION ALL
SELECT
sourcetable,
rep,
count(clientid)
FROM
(
SELECT
"table 2" as [sourcetable],
rep,
clientid
FROM
table2
GROUP BY 1,2,3
)
不考虑 table:
只获取每个代表的不同 clientids 的数量SELECT
rep,
count(clientid)
FROM
(
SELECT rep,clientid FROM table1
UNION
SELECT rep,clientid FROM table2
)
GROUP BY 1