У меня есть таблица TRANSACTIONS
со столбцами:
TRANSACTIONKEY (int) Primary Key
TRANSACTIONTYPEKEY (int)
RECEIPTNUMBER (varchar)
TRANSACTIONTYPEKEY
может иметь значения в диапазоне от 1 до 50. Там ДОЛЖЕН быть строкой TRANSACTIONS
с TRANSACTIONTYPEKEY
= 1, и тогда может быть любое количество других TRANSACTIONTYPEKEY
записей - даже дубликаты некоторых (еще один вопрос в другой раз).
Меня попросили предоставить отчет, который показывает всеквитанции (RECEIPTNUMBER
), которые имеют запись для TRANSACTIONTYPEKEY
= 50 , но не имеют TRANSACTIONTYPEKEY
запись = 1 .Руководство обнаружило полдюжины случайно и хочет знать в полной мере, и эта таблица содержит почти 50 000 строк транзакций.
Возможно ли это с помощью SQL?Я использую SQL Server 2000 и T-SQL, чтобы быть конкретным.
Я пытался
SELECT RECEIPTNUMBER
FROM TRANSACTIONS
WHERE TRANSACTIONTYPEKEY = 50
AND TRANSACTIONTYPEKEY NOT IN (SELECT TRANSACTIONTYPEKEY FROM TRANSACTIONS WHERE TRANSACTIONTYPEKEY <> 1)
, но этот запрос продолжается и продолжается!Я должен отменить это.