0

我有一个带有管理器及其依赖用户的数据库。以及其他服务器上的其他数据库,以及有关用户的其他一些信息。

我想查询第二个数据库并获取按经理分组的数据。一种解决方案是遍历 db2 的结果并在应用程序中计算新结果,但我想尝试从 db1 构建结果集,其中包含要查询的用户及其管理器的数据,以便在 db2 上执行。类似于下面的伪代码:

SELECT
b.manager_id,
SUM(a.column)
FROM user a
JOIN <resultset_with_assoc_between_user_and_manager> b ON a.user_id = b.manager_id
GROUP BY b.manager_id

这是否可能,而无需在 db2 中创建任何新表,只需使用 db1 中的数据进行查询?

4

1 回答 1

0

这是我提出的解决方案。它工作正常,但我不知道与使用 user_id -> manager_id 记录创建 tmp 表并使用db2_table. 但正如我所说,db2_table是 huuuuuuuge

SELECT

CASE
   WHEN a.user_id IN(user_id11, user_id12,user_id13, ...) THEN manager_id1
   WHEN a.user_id IN(user_id21, user_id22,user_id23, ...) THEN manager_id2
   WHEN a.user_id IN(user_id31, user_id32,user_id33, ...) THEN manager_id3
   ...
   ELSE a.user_id
END AS manager,
...

FROM db2_table a

GROUP BY manager
于 2014-09-09T11:11:50.173 回答