Sql GROUP BY ORDERING by DATE
МНЕ НУЖНО СДЕЛАТЬ ЗАКАЗ ПО ДАТЕ, УКАЗАННОЙ ЗДЕСЬ:
SELECT b.Client,a.Claim,CAST( a.DateReported AS dATE)AS [DATE], c.Parameter18 FROM dbo.Claim a INNER JOIN dbo.Client b ON a.Client = b.Client INNER JOIN dbo.ClaimSupplement c ON a.Claim = c.Claim Where Master=50 and a.DateReported between '3/1/16' and '6/30/16' GROUP BY CAST( a.DateReported AS dATE) ORDER BY a.DateReported
Я получаю следующее сообщение об ошибке:
Msg 8120, Level 16, State 1, Line 1 Column 'dbo.Client.Client' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
как мне изменить моего запроса в группы по datereported? Спасибо
Что я уже пробовал:
SELECT b.Client,a.Claim,CAST( a.DateReported AS dATE)AS [DATE], c.Parameter18 FROM dbo.Claim a INNER JOIN dbo.Client b ON a.Client = b.Client INNER JOIN dbo.ClaimSupplement c ON a.Claim = c.Claim Where Master=50 and a.DateReported between '3/1/16' and '6/30/16' GROUP BY CAST( a.DateReported AS dATE) ORDER BY a.DateReported
0x01AA
В случае "GROUP BY" все поля, кроме "GROUP FIELD", доступны только с агрегатной функцией. Вы можете проверить это, используя, например, MIN (b.Client) и т. д. Для полей. Имейте в виду, что это всего лишь тест и, скорее всего, не имеет никакого смысла.
Вам нужно подумать о логике.
SujayC
Почему вы используете предложение Group by в запросе, когда в операторе select нет агрегации? Используйте предложение Group By только в том случае, если вам нужно выполнить операцию агрегации для столбцов, отличных от столбца в group by.
Попробуйте удалить это предложение group by в случае, если вам нужен только плоский список всех претензий и клиентов между диапазоном дат! или очистите свое требование.
Bunty Choudhary
Вы пробовали вот так :-
Выберите б.Клиента.Утверждают,литой( Макс (.DateReported) над (раздел по.Клиента) как дата), так как [дата], Си.Parameter18
От ДБО.Требования
Внутреннее соединение dbo.Клиент Б на.Клиент = б.Клиент
Внутреннее соединение dbo.ClaimSupplement C на.Требования = с.Претензии
Где Master=50 и A. DateReported между '3/1/16' и '6/30/16'
Приказ.DateReported