Добавление условия с помощью EXISTS со вторым внутренним соединением
Следующая хранимая процедура работает нормально, но мне нужно добавить еще одно условие по отношению к другой таблице под названием tblItems. Я требую, чтобы tblAccounts.accountID присоединился к tblItems.AccountID, чтобы я мог проверить, есть ли tblItems.fileID > 0 для каждого accountID с @bootsaledate, и если да, то верните результаты для кода ниже..
SELECT *, CASE WHEN RowNo < cnt THEN 'N' ELSE 'Y' END AS lastbox FROM ( SELECT ROW_NUMBER() OVER (ORDER BY dateAdded desc) as [RowNo], COUNT(*) OVER () cnt, tblAccounts.skypeUserName, tblAccounts.contactName, tblorders.friendlyOrderID FROM tblOrders INNER JOIN tblAccounts ON tblOrders.accountID=tblAccounts.accountID WHERE bootSaleDate = @bootSaleDate AND orderStatus='Completed' ) t WHERE RowNo BETWEEN (@page*8)-7 AND (@page*8)
Что я уже пробовал:
Я попробовал следующее, Но похоже, что он возвращает результат строки для каждого появления fileID в tblItems..
SELECT *, CASE WHEN RowNo < cnt THEN 'N' ELSE 'Y' END AS lastbox FROM ( SELECT ROW_NUMBER() OVER (ORDER BY orderDate desc) as [RowNo], COUNT(*) OVER () cnt, tblAccounts.skypeUserName, tblAccounts.contactName, tblorders.friendlyOrderID FROM tblOrders INNER JOIN tblAccounts ON tblOrders.accountID=tblAccounts.accountID INNER JOIN tblItems ON tblOrders.accountID=tblItems.accountID WHERE EXISTS(select 1 from tblItems WHERE tblItems.fileID > 0 AND tblItems.accountID = tblOrders.accountID AND tblOrders.bootSaleDate = @bootSaleDate) AND tblOrders.bootSaleDate = @bootSaleDate AND tblOrders.orderStatus='Completed' ) t WHERE RowNo BETWEEN (@page*8)-7 AND (@page*8)