夸数据库统计问题

yibey 2010-06-30 09:55:23
我有数据库DATA1,DATA2,DATA3,DATA4,DATA5 和MAINDATA 他们都在同一服务器上


6表中都有USERS这个表 其中有个active 字段表示是否激活这用户
在MAINDATA中还有SITE表 其中有 SITENAME 和 URL ,其中SITENAME的值是 DATA 1,2,3…这些数据库名字 URL是对应这些数据库的网站。
SITENAME URL
DATA1 URL1
DATA2 URL2

我现在连接到MAINDATA这个数据库,现在要求得到这样一个返回值表。
SITENAME URL ACTIVE TOTAL
DATA1 URL1 激活人数 总用户数


MAINDATA MAINURL 激活人数 总用户数
...全文
110 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yibey 2010-06-30
  • 打赏
  • 举报
回复
当然是动态的了
就是查询MAINDATA 这个数据库表里的SITE表,SITE表中的SITENAME 就是数据库的名字。
然后查询所有这些SITE的激活用户数和总数ACTIIVE BIT 类型
永生天地 2010-06-30
  • 打赏
  • 举报
回复
同服务器,加上数据库名即可
claro 2010-06-30
  • 打赏
  • 举报
回复
--try
--假设active 字段为1 ,表示激活这用户;同时假设USERID 为用户字段
with data as (
select db_name() 数据库名,,count(active) 激活人数,count(USERID) 总用户数 from DATA1..USERS where active =1
UNION all
select db_name() 数据库名,,count(active) 激活人数,count(USERID) 总用户数 from DATA2..USERS where active =1
UNION all
select db_name() 数据库名,,count(active) 激活人数,count(USERID) 总用户数 from DATA3..USERS where active =1
UNION all
select db_name() 数据库名,,count(active) 激活人数,count(USERID) 总用户数 from DATA4..USERS where active =1
UNION all
select db_name() 数据库名,,count(active) 激活人数,count(USERID) 总用户数 from DATA5..USERS where active =1
)
select a.SITENAME,a.URL ,b.激活人数,b.总用户数
from MAINDATA..[SITE] a
JOIN data b on b.数据库名 = a.SITENAME
kiruya0 2010-06-30
  • 打赏
  • 举报
回复
要动态跨库查询?
claro 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 yibey 的回复:]
6表中都有USERS这个表
[/Quote]另外USERS这个表中的用户字段呢?
claro 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 yibey 的回复:]
active 字段表示是否激活这用户
[/Quote]怎样表示是否激活?
Sharon_liu 2010-06-30
  • 打赏
  • 举报
回复
跨数据库访问这样写
SELECT *
FROM DATA1.DBO.TABLE1 T1
INNER JOIN DATA2.DBO.TABLE1 T2 ON T1.ID=T2.ID

具体需求最好上点建表语句和测试数据,再把想要的结果帖上来

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧