Я знаю, что этот вопрос задавался несколько раз, но я до сих пор не могу понять, почему мой запрос возвращает значения, которые не являются дубликатами. Я хочу, чтобы мой запрос возвращал только записи, которые имеют одинаковое значение в столбце Credit
. Запрос выполняется без ошибок, но также возвращаются значения, которые не дублируются. Это мой вопрос:Найти дубликаты в таблице MS SQL
Select
_bvGLTransactionsFull.AccountDesc,
_bvGLAccountsFinancial.Description,
_bvGLTransactionsFull.TxDate,
_bvGLTransactionsFull.Description,
_bvGLTransactionsFull.Credit,
_bvGLTransactionsFull.Reference,
_bvGLTransactionsFull.UserName
From
_bvGLAccountsFinancial Inner Join
_bvGLTransactionsFull On _bvGLAccountsFinancial.AccountLink =
_bvGLTransactionsFull.AccountLink
Where
_bvGLTransactionsFull.Credit
IN
(SELECT Credit AS NumOccurrences
FROM _bvGLTransactionsFull
GROUP BY Credit
HAVING (COUNT(Credit) > 1))
Group By
_bvGLTransactionsFull.AccountDesc, _bvGLAccountsFinancial.Description,
_bvGLTransactionsFull.TxDate, _bvGLTransactionsFull.Description,
_bvGLTransactionsFull.Credit, _bvGLTransactionsFull.Reference,
_bvGLTransactionsFull.UserName, _bvGLAccountsFinancial.Master_Sub_Account,
IsNumeric(_bvGLTransactionsFull.Reference), _bvGLTransactionsFull.TrCode
Having
_bvGLTransactionsFull.TxDate > 01/11/2014 And
_bvGLTransactionsFull.Reference Like '5_____' And
_bvGLTransactionsFull.Credit > 0.01 And
_bvGLAccountsFinancial.Master_Sub_Account = '90210'
Но, у вас есть эти повторяющиеся данные? Кроме того, уверены ли вы, что условия 'HAVING' из вашего внешнего запроса не фильтруют данные? Я думаю, что выполнение всего запроса до самой «GROUP BY» обязательно вернет вам то, что вы хотите (* если соответствующие данные есть *). –