これは私のテーブル構造です
CREATE TABLE branch_book_list (
branch_name CHAR(10),
book_ISBN CHAR (13),
book_name CHAR(40),
PRIMARY KEY (branch_name, book_ISBN)
)
テーブルに次のデータ行があります。
branch_name book_ISBN book_name
----------- ------------- ----------------------------------------
Branch A 1-56592-756-7 Transact-SQL Cookbook
Branch A 1-56592-401-0 Transact-SQL Programming
Branch A 1-56592-401-0 Transact-SQL Programming
Branch B 1-56592-756-7 Transact-SQL Cookbook
Branch B 1-56592-756-7 Transact-SQL Cookbook
Branch B 1-56592-401-0 Transact-SQL Programming
このクエリを実行すると:
SELECT bbl1.*, COUNT(*) DupeCount
FROM branch_book_list bbl1
WHERE bbl1.branch_name = 'Branch A'
GROUP BY bbl1.branch_name, bbl1.book_ISBN, bbl1.book_name
HAVING NOT EXISTS (
SELECT bbl2.*, COUNT(*)
FROM branch_book_list bbl2
WHERE branch_name = 'Branch B'
GROUP BY bbl2.branch_name, bbl2.book_ISBN, bbl2.book_name
HAVING bbl1.book_ISBN = bbl2.book_ISBN
AND bbl1.book_name = bbl2.book_name
AND COUNT(*) = COUNT(ALL bbl1.book_ISBN))
出力は
branch_name book_ISBN book_name DupeCount
----------- ------------- ---------------------------------------- -----------
Branch A 1-56592-401-0 Transact-SQL Programming 2
Branch A 1-56592-756-7 Transact-SQL Cookbook 1
クエリの上部のみを実行すると
SELECT bbl1.*, COUNT(*) DupeCount
FROM branch_book_list bbl1
WHERE bbl1.branch_name = 'Branch A'
GROUP BY bbl1.branch_name, bbl1.book_ISBN, bbl1.book_name
私の出力は
branch_name book_ISBN book_name DupeCount
Branch A 1-56592-401-0 Transact-SQL Programming 2
Branch A 1-56592-756-7 Transact-SQL Cookbook 1
しかし、完全なクエリが実行されたときに、この出力を取得するにはどうすればよいですか?
branch_name book_ISBN book_name DupeCount
----------- ------------- ---------------------------------------- -----------
Branch A 1-56592-401-0 Transact-SQL Programming 2
Branch A 1-56592-756-7 Transact-SQL Cookbook 1
誰かが私が出力を超えることができる方法を教えてもらえますか?