我有两个名为A
和B
的表。
表A
包含请求详细信息,例如
request_id
,company_id
和Customer_id
。
表B包含反馈数据,例如feedback_id
,company_id
,status_ind
,customer_id
,score_total
。
我需要获取表B
的行数,其中company_id
对应A
,其中status_ind
为1
,并从中减去表A
的计数。
答案 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