Относительно сложный запрос в EntitySpaces возвращает результаты, отличные от тех, которые выполняются для реального
У меня есть (что я считаю) относительно сложный запрос SQL, чтобы выбрать некоторые данные для новой функции для приложения, которое я поддерживаю на работе. Вот запрос.
SELECT pchtq.[sourceappid],
pchtq.[transactioncode],
pchtq.[accountid],
pchtq.[year],
pchtq.[filingdatetime],
pchtq.[amount],
pchtq.[note],
pchtq.Status,
pchtq.SourceRecordID,
utaq.fullname,
utaq.username
FROM [database].[dbo].[transactions1] pchtq
INNER JOIN [database].[dbo].[useraccounts] utaq
ON pchtq.[accountid] = utaq.[accountid]
WHERE
pchtq.status = 'failed'
AND pchtq.[recordcreatedatetime] >= '01/01/2015'
AND pchtq.[recordcreatedatetime] <= '05/11/2016'
and Not exists
(
select TransactionID
from
Database.dbo.Transactions2 eft
where
CAST(eft.TransactionID as nvarchar(50)) = pchtq.SourceRecordID
and eft.status IN( 'paid', 'audit' )
)
В пространствах сущностей я написал это так:
pchtq
.Select(
pchtq.SourceAppID,
pchtq.TransactionCode,
pchtq.AccountID,
pchtq.Year,
pchtq.FilingDateTime,
pchtq.Amount,
pchtq.Note
).InnerJoin(utaq).On(pchtq.AccountID == utaq.AccountID)
.Where(pchtq.RecordCreateDateTime >= request.StartDate
&& pchtq.RecordCreateDateTime <= request.EndDate
&& pchtq.Status == "FAILED")
.NotExists(
eftq.Select(
eftq.EFileTransactionID
).Where(eftq.Status.In("Paid", "Audit")
&& Convert.ToString(eftq.TransactionID) == pchtq.SourceRecordID));
Однако, когда я запускаю его в приложении ES (используя pchtc.Load(pchtq)
), Я получаю около 7500 строк, тогда как при выполнении запроса SQL я получаю около 1500.
Что здесь не так?
1 ответ
Может, дело в том, что у вас строки отличаются в случае? "Сбой" против "провал" и "Аудит" против "аудит"?
Это единственное отличие, которое я вижу честно.