Поэтому я хотел найти продукты, которые присутствуют во всех счетах клиентов, используя NOT EXIST. Я создал две временные таблицы, используя WITH, и впоследствии я пытаюсь вычесть их, чтобы найти результат, однако я получаю эту ошибку
Сообщение 422, уровень 16, состояние 4, строка 28
Общее табличное выражение определено, но не используется.
Вот что я делал до сих пор.
DECLARE @startdate datetime = '2010-01-01 08:56:01.49';
DECLARE @enddate datetime = '2010-01-02 10:43:17.283';
With AllProducts AS
(
SELECT P.PRODUCT_ID,
P.PRODUCT_NAME,
CONCAT(DATENAME(MONTH, @startdate), '''', RIGHT(DATENAME(YEAR,
@startdate), 2)) AS StardPeriod,
CONCAT(DATENAME(MONTH, @enddate), '''', RIGHT(DATENAME(YEAR, @enddate),
2)) AS EndPeriod
FROM Products$ P
),
ProductNotExistInInvoices AS
(
SELECT P.PRODUCT_ID,
P.PRODUCT_NAME,
CONCAT(DATENAME(MONTH, @startdate), '''', RIGHT(DATENAME(YEAR,
@startdate), 2)) AS StardPeriod,
CONCAT(DATENAME(MONTH, @enddate), '''', RIGHT(DATENAME(YEAR,
@enddate), 2)) AS EndPeriod
FROM Products$ P
WHERE NOT EXISTS (SELECT 1
FROM Invoices$ I
JOIN InvDetails$ ID ON I.INVOICE_ID = ID.INVOICE_ID
WHERE I.INVOICE_DATE BETWEEN @startdate AND @enddate
AND ID.PRODUCT_ID = P.PRODUCT_ID)
)
SELECT (AllProducts)-(ProductNotExistInInvoices) AS Result