У меня возникла проблема с запросом, который я собрал вместе, я объяснил это по http://www.sql-server-helper.com/error-messages/msg-147.aspx (внизу страницы), и я не вижу большой разницы в моем коде к примеру, отличному от добавления в предложение WHERE и Inner Join.WHERE ID = MAX (ID) Получение ошибки Агрегат может не отображаться
Но я все еще получаю следующее сообщение об ошибке:
Msg 147, Level 15, State 1, Line 5
An aggregate may not appear in the WHERE clause unless it is in a subquery contained in a HAVING clause or a select list, and the column being aggregated is an outer reference.
Это мой собственный код:
SELECT *
FROM [dbo].[mail] AS rm
INNER JOIN [dbo].[mytbl] AS ec ON [rm].[webref] = [ec].[Webref]
WHERE rm.[webref] = 'XYZ-594112'
AND [[email protected]] = (SELECT MAX([[email protected]])
FROM [dbo].[mytbl]
)
Может кто-нибудь пролить свет на то, почему это происходит?
EDIT:
CREATE TABLE [dbo].[mail](
[id] [int] IDENTITY(1,1) NOT NULL,
[date] [datetime] NULL,
[webref] [nvarchar](20) NULL
) ON [PRIMARY]
Другая таблица на самом деле вид, который состоит из нескольких других таблиц, однако урезанная версия будет:
CREATE TABLE [dbo].[mytbl](
[[email protected]] [varchar](10) NULL,
[Webref] [varchar](30) NULL) ON [PRIMARY]
EDIT UPDATE:
Теперь возникает следующая ошибка:
SELECT *
FROM [FreshSystems].[dbo].[mail] AS rm
INNER JOIN [dbo].[mytbl] AS ec ON [rm].[webref] = [ec].[Webref]
WHERE rm.[webref] = 'XYZ-594112'
HAVING [[email protected]] = (SELECT MAX([[email protected]])
FROM [dbo].[mytbl]
)
Ошибка
Msg 8121, Level 16, State 1, Line 5
Column '[email protected]' is invalid in the HAVING clause because it is not contained in either an aggregate function or the GROUP BY clause.
РАБОЧАЯ:
SELECT *
FROM [dbo].[mail] AS rm
LEFT OUTER JOIN [dbo].[mytbl] AS ec ON [rm].[webref] = [ec].[Webref]
WHERE rm.[webref] = 'XYZ-594112'
AND [[email protected]] = (SELECT MAX([[email protected]])
FROM [dbo].[mytbl]
WHERE [Webref] = 'XYZ-594112'
)
Это выглядит как действительный запрос SQL, странно. – Magnus
Не могли бы мы увидеть DDL для двух таблиц? Не удается воспроизвести первые таблицы, которые попали в руки ... – AakashM
Я тоже не могу воспроизвести ... –