TSQL/SQL-错误:列在选择列表中无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中



我希望有人能在这里为我指明正确的方向。

DB#1名称:"Wayin_Integration_SFMC_AD">

我正试图与这个主表(DB#2(合并:"Master_Users_SVOC_test_vt">

假设"Wayin_Integration_SFMC_AD"中的每个人都已经在"Master_Users_SVOC_test_vt"中有了主键和记录,现在我想合并到该记录的剩余数据中。

问题是,我的大多数字段都没有包含在GROUP BY子句中。

我需要在这里使用子查询吗?我是SQL的新手。以下是我不确定的片段。如果没有GROUP BY,这是可行的,但分组让我感到困惑。

ERROR MESSAGE:"选择列表中的列'Wayin_Integration_SFMC_AD.First_Name'无效,因为它既不包含在聚合函数中,也不包含在GROUP BY子句中。">

  • ,这是GROUP BY子句中未包含的第一个字段

这是不起作用的SQL:

MERGE INTO [bo_marketing_capability_dev].[dbo].[Master_Users_SVOC_test_vt] AS m 
USING (
SELECT
m.subscriber_key,
m.email_address,
w.[First_Name] AS first_name,
w.[Last_Name] AS last_name,
, MAX (w.DateAdded) AS wayin_DateAdded    
FROM Wayin_Integration_SFMC_AD w 
INNER JOIN Master_Users_SVOC_test_vt m
ON w.Email = m.email_address
GROUP BY subscriber_key, w.[Email], m.email_address
) AS SRC
ON ([SRC].[email_address] = [m].[email_address])
MERGE INTO [bo_marketing_capability_dev].[dbo].[Master_Users_SVOC_test_vt] AS m 
USING (
SELECT
m.subscriber_key,
m.email_address,
w.[First_Name] AS first_name,
w.[Last_Name] AS last_name,
, MAX (w.DateAdded) AS wayin_DateAdded    
FROM Wayin_Integration_SFMC_AD w 
INNER JOIN Master_Users_SVOC_test_vt m
ON w.Email = m.email_address
GROUP BY m.subscriber_key, m.email_address, w.[First_Name], w.[Last_Name]
) AS SRC
ON ([SRC].[email_address] = [m].[email_address])

试试上面的代码。GROUP BY应具有所有非聚合列。

最新更新