Sql server SQL Server 2014使用Max函数选择其他表中不存在的记录
我有两张桌子,顾客和售货员 我需要从Sales中提取尚未加载到Customers表中的所有客户,并且在要求我添加2Sql 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
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)提出一个新问题。是的,戈登,你完全正确,今晚太累了。。事实上,我合并了两封不同的邮件,并提出了错误的问题:真正的问题是完全不同的。如果我再提一个问题也许会更好。。如果参考原始问题,您的答案完全正确。再次抱歉。