Member 12614281 Ответов: 2

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

2 Ответов

Рейтинг:
2

OriginalGriff

Мы не можем ответить на этот вопрос, потому что не знаем, что вы пытаетесь сделать со своими группировками.
Взгляните на это: SQL GROUP By и ошибка" имя столбца недопустимо в списке выбора, потому что..."[^]- это может помочь вам понять, о чем говорит Ошибка.


Рейтинг:
1

manishss

попробовать это

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'
						 
						ORDER BY CAST( a.DateReported AS dATE)