Вычесть количество возвращенных из двух таблиц, используя tsql - PullRequest
1 голос
/ 29 марта 2012

У меня есть две таблицы с именами 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

Ответы [ 4 ]

2 голосов
/ 29 марта 2012

Я не уверен, что вы спрашиваете, но

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
0 голосов
/ 29 марта 2012

Кажется, что ваша проблема может быть перефразирована следующим образом: количество строк 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
0 голосов
/ 29 марта 2012

Я тоже не уверен.Но я понял это так:

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

Я редактировал это, сначала подумал, что status_ind находится в таблице A, а не в B

0 голосов
/ 29 марта 2012

Вы должны использовать хранимую процедуру или функцию sql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...