Относительно сложный запрос в 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.

Что здесь не так?


person Alex Kibler    schedule 11.05.2016    source источник


Ответы (1)


Может быть дело в том, что у вас струны различаются по регистру? "FAILED" или "failed" и "Audit" или "Audit"?

Это единственная разница, которую я вижу, если честно.

person Gaspa79    schedule 11.05.2016