Sql server SQL Server 2014使用Max函数选择其他表中不存在的记录

Sql server SQL Server 2014使用Max函数选择其他表中不存在的记录,sql-server,select,Sql Server,Select,我有两张桌子,顾客和售货员 我需要从Sales中提取尚未加载到Customers表中的所有客户,并且在要求我添加2MAX()字段之前,我构建了下面的查询,该查询运行得非常好 以下是查询: INSERT INTO Customers (.....) SELECT distinct d.UserName, d.postalCode, d.location, d.country, max(d.i

我有两张桌子,顾客和售货员

我需要从Sales中提取尚未加载到Customers表中的所有客户,并且在要求我添加2
MAX()
字段之前,我构建了下面的查询,该查询运行得非常好

以下是查询:

    INSERT INTO Customers (.....)
    SELECT distinct 
        d.UserName, 
        d.postalCode, 
        d.location, 
        d.country,  
        max(d.invoiceamount) invoiceamount, 
        max(d.itemscount) itemscount,
        d.storeID
    FROM S.dbo.[Sales] d
    LEFT JOIN G.dbo.Customers s ON d.Username=s.UserName
    WHERE s.UserName IS NULL
    AND d.username IS NOT NULL
    GROUP BY d.UserName, d.postalCode, d.location,    
    d.country, max(d.invoiceamount), max(d.itemscount), d.storeID
但查询在分组中不接受max():

在另一种情况下,我使用了
交叉应用
,但因为这里我必须在一个表中提取用户名为NULL的记录。。。我不知道如何构建查询


您能给出一些提示吗?

您不需要
组中的
max()

INSERT INTO Customers (.....)
    SELECT d.UserName, d.postalCode, d.location, d.country,  
           max(d.invoiceamount) invoiceamount, 
           max(d.itemscount) itemscount,
           d.storeID
    FROM S.dbo.[Sales] d LEFT JOIN
         G.dbo.Customers s
         ON d.Username = s.UserName
    WHERE s.UserName IS NULL AND d.username IS NOT NULL
    GROUP BY d.UserName, d.postalCode, d.location, d.country, d.storeID;

所有未聚合的列都应位于
分组依据

尝试删除
分组依据
子句中的
MAX
函数及其列:
分组依据d.UserName、d.postalCode、d.location、d.country、d.storeID
是的,菲利克斯,你完全正确,今晚太累了。。事实上,我合并了两封不同的邮件,并提出了错误的问题:真正的问题是完全不同的。如果我再提一个问题也许会更好。。如果参考原始问题,您的答案完全正确。再次抱歉,请在提出问题后不要完全改变你的问题。如果你解决了原来的问题,想问一个新问题,那么你应该(1)接受一个答案,如果这个答案有助于你解决问题,(2)提出一个新问题。是的,戈登,你完全正确,今晚太累了。。事实上,我合并了两封不同的邮件,并提出了错误的问题:真正的问题是完全不同的。如果我再提一个问题也许会更好。。如果参考原始问题,您的答案完全正确。再次抱歉。