来自不同数据库的行数 [英] count of rows from different database

查看:70
本文介绍了来自不同数据库的行数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好..



我有两个数据库A& B在两个数据库中都有一个名为planner的表..

表结构如下:

Hello everyone..

I have two database A & B in both the database there is a table called "planner"..
table structure is as follow:

Table A :

Id    Topicid         Resourceid              Isdeleted
1       596             3                          false
2       359             5                          false
3       596             8                          true
3       596             10                         true
3       596             12                         true

Table B:

Id    Topicid         Resourceid              Isdeleted
1       596             3                          false
2       359             5                          false
3       596             8                          true
3       596             10                         true
3       596             12                         false

I need a query for the isdeleted="true" which gives me a result like this


Topicid         isDeletedCountA           isDeletedCountB
359                0                          0
596                3                          2


I have tried this thing , but its not working perfectly..

Query :


select A.TopicId,Count(A.isdeleted),count(B.isdeleted) from
A inner join B on A.TopicId=B.TopicId
where A.isdeleted='true'
and B.isdeleted='true'
group by A.TopicId
order by A.topicid







请帮帮我...





问候,

Krunal




Please help me out...


Regards,
Krunal

推荐答案

试试这个:

Try this:
DECLARE @tableA TABLE (Id INT, Topicid INT, Resourceid INT, Isdeleted VARCHAR(10))

INSERT INTO @tableA (Id, Topicid, Resourceid, Isdeleted)
SELECT 1 AS Id, 596 AS Topicid, 3 AS Resourceid, 'false' AS Isdeleted
UNION ALL SELECT 2, 359, 5, 'false'
UNION ALL SELECT 3, 596, 8, 'true'
UNION ALL SELECT 3, 596, 10, 'true'
UNION ALL SELECT 3, 596, 12, 'true'

DECLARE @tableB TABLE (Id INT, Topicid INT, Resourceid INT, Isdeleted VARCHAR(10))

INSERT INTO @tableB (Id, Topicid, Resourceid, Isdeleted)
SELECT 1 AS Id, 596 AS Topicid, 3 AS Resourceid, 'false' AS Isdeleted
UNION ALL SELECT 2, 359, 5, 'false'
UNION ALL SELECT 3, 596, 8, 'true'
UNION ALL SELECT 3, 596, 10, 'true'
UNION ALL SELECT 3, 596, 12, 'false'

SELECT Topicid, Isdeleted, [A], [B]
FROM(
    SELECT Topicid, 'A' AS TableName, Isdeleted
    FROM @tableA
    UNION ALL
    SELECT Topicid, 'B' AS TableName, Isdeleted
    FROM @tableB
) AS DT
PIVOT(COUNT([Tablename]) FOR Tablename IN([A],[B]))AS PT
--WHERE Isdeleted = 'true'





结果:



Result:

Topicid Isdeleted	A	B
359	false		1	1
596	false		1	2
596	true		3	2


您好,



检查下面的脚本.....



Hi,

Check the below Script.....

SELECT T.Topicid,
	(SELECT ISNULL(COUNT(Resourceid),0) FROM TableA WHERE Topicid=T.Topicid AND Isdeleted=1) 'isDeletedCountA',
	(SELECT ISNULL(COUNT(Resourceid),0) FROM TableB WHERE Topicid=T.Topicid AND Isdeleted=1) 'isDeletedCountB'
FROM (SELECT Topicid FROM TableA
	  UNION 
      SELECT Topicid FROM TableB) T



问候,

GVPrabu


Regards,
GVPrabu


参见,例如,在这里:如何查询多个数据库并生成报告 [ ^ ]。
See, for instance, here: "How To Query Multiple Databases and Generate Reports"[^].


这篇关于来自不同数据库的行数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆