У меня есть следующая приблизительная структура таблиц:
accounts:
ID INT,
owner_id INT,
currency_id TINYINT
относится к
clients:
ID INT
и
currency_types:
ID TINYINT,
name NVARCHAR(25)
Мне нужно написать хранимую процедуру для проверки существования счетов с определенной валютой и всех других, т. Е. У клиента могут быть счета в определенной валюте, некоторых других валютах и обоих.
Я уже написал этот запрос:
SELECT
ISNULL((
SELECT 1
WHERE EXISTS
(
SELECT 1
FROM [accounts] AS A, [currency_types] AS CT
WHERE
A.[owner_id] = @client -- sp param
AND A.[currency_id] = CT.[ID]
AND CT.[name] = N'Ruble'
)), 0) AS [ruble],
ISNULL((
SELECT 1
WHERE EXISTS
(
SELECT A.[ID]
FROM [accounts] AS A, [currency_types] AS CT
WHERE
A.[owner_id] = @client
AND A.[currency_id] = CT.[ID]
AND CT.[name] != N'Ruble'
)), 0) AS [foreign]
Можно ли его оптимизировать? Я новичок в (T) SQL, поэтому заранее спасибо!