我正在尝试编写一个查询,该查询从两个联接的表中返回DateCode和ContainerName,但仅向我提供DateCode不是唯一的记录(具有多个条目)我觉得我编写的SQL查询应该做到这一点,但我不断收到此错误:
每个GROUP BY表达式必须包含至少一个不是外部引用的列。
也许我太绿了,无法理解为什么它不起作用,但这是我的查询:
SELECT LA.DateCode, C.ContainerName
FROM CamstarSch.A_LotAttributes LA INNER JOIN
CamstarSch.Container C
ON C.ContainerId = LA.ContainerId
WHERE LA.DateCode IN (SELECT LA.DateCode
FROM CamstarSch.A_LotAttributes
GROUP BY LA.DateCode, C.ContainerName
HAVING COUNT(*) > 1
);
subquery
的问题,DateCode
应该来自子查询查询:
WHERE LA.DateCode IN (SELECT AL.DateCode
FROM CamstarSch.A_LotAttributes AS AL
GROUP BY AL.DateCode
HAVING COUNT(*) > 1
);
但是,简单的聚合也可以:
SELECT LA.DateCode, C.ContainerName
FROM CamstarSch.A_LotAttributes LA INNER JOIN
CamstarSch.Container C
ON C.ContainerId = LA.ContainerId
GROUP BY LA.DateCode, C.ContainerName
HAVING COUNT(*) > 1;
这是一个非常容易的人,你是如此亲密!
SELECT LA.DateCode, C.ContainerName, COUNT(*)
FROM CamstarSch.A_LotAttributes LA
INNER JOIN CamstarSch.Container C ON C.ContainerId = LA.ContainerId
GROUP BY LA.DateCode, C.ContainerName
HAVING COUNT(*)>1