使用tsql减去从两个表返回的计数

时间:2012-03-29 12:05:00

标签: sql sql-server sql-server-2008 tsql

我有两个名为AB的表。

A包含请求详细信息,例如 request_idcompany_idCustomer_id

表B包含反馈数据,例如feedback_idcompany_idstatus_indcustomer_idscore_total

我需要获取表B的行数,其中company_id对应A,其中status_ind1,并从中减去表A的计数。

4 个答案:

答案 0 :(得分:2)

我不确定你在问什么,但是

declare @countA integer = (select count(*) from A)

declare @countB integer = 
    (select count(*) from B where 
     exists(select * from A where A.company_id = B.company_id AND A.status_ind = 1)

declare @difference integer = @countA - @countB

答案 1 :(得分:0)

你必须使用sql存储过程或函数。

答案 2 :(得分:0)

我也不确定。但我理解为这样:

SELECT COUNT(*) FROM A WHERE company_id NOT IN (SELECT company_id FROM B WHERE status_ind = 1)

我编辑了它,我首先想到的是status_ind在表A中而不在B

答案 3 :(得分:0)

似乎您的问题可以像这样重写:计算与A status_ind = 1行不匹配的B行。

好吧,只需使用反连接,例如:

SELECT COUNT(*)
FROM A
  LEFT JOIN B ON A.company_id = B.company_id AND B.status_ind = 1
WHERE B.company_id IS NULL