Как исправить «запрос не включает указанное выражение« кредит usd »как часть агрегатной функции»? - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь выбрать "max (TxnDate) в качестве txDate, [имя учетной записи dr], [credit usd]" , и я получил ошибку ", запрос не включает указанное выражение" credit usd'как часть агрегатной функции' в программировании на Excel VBA, но в работе найти, когда я пытался в SQL Server или PHPMyadmin

Я работаю над MSExcel 2013 с программированием VBA

SELECT max(TxnDate) as txDate, [account name dr], [credit usd] from 
   (
       SELECT t.TxnDate, t.[account name dr], t.[credit usd] FROM 
       ( 
           select [account name dr], max([credit usd]) as max_c from [FT_Pure$] GROUP BY [account name dr]
       ) as a INNER JOIN [FT_Pure$] as t on (t.[account name dr] = a.[account name dr] and t.[credit usd] = max_c)
   ) as ta group by ta.[account name dr]

Iожидается, что вывод должен содержать список txDate, account_name_dr и Credit_Usd

Вот сообщение об ошибке:

Error messsage

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

В внешнем предложении GROUP BY отсутствует [credit usd], который есть у вас во внешнем выборе, вместе с [имя учетной записи dr].

Просто добавьте его в:

SELECT max(TxnDate) as txDate, [account name dr], [credit usd] from 
   (
       SELECT t.TxnDate, t.[account name dr], t.[credit usd] FROM 
       ( 
           select [account name dr], max([credit usd]) as max_c from [FT_Pure$] GROUP BY [account name dr]
       ) as a INNER JOIN [FT_Pure$] as t on (t.[account name dr] = a.[account name dr] and t.[credit usd] = max_c)
   ) as ta group by ta.[account name dr], [credit usd]
0 голосов
/ 08 мая 2019

Если вы пытаетесь получить самую последнюю строку для каждой учетной записи, агрегирование не то, что приходит на ум. Вы можете использовать фильтрацию:

select t.*
from [FT_Pure$] t
where t.TxnDate = (select max(t2.TxnDate)
                   from [FT_Pure$] t2
                   where t2.[account name dr] = t.[account name dr]
                  );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...