group by
不幸的是,我对诸如和之类的陈述的了解having
非常有限,因此希望您能帮助我:
我有一个观点 - 这是一个摘录 - (如果我们这里有一些欧洲人 - 它是 Winline/Mesonic 的 v021):
ID | Artikelbezeichnung1 | Bez2 | mesoyear
_____________________________________________________________________
1401MA70 | Marga ,Saracena grigio,1S,33,3/33,3 | Marazzi | 1344
1401MA70 | Marga ,Saracena grigio,1S,33,3/33,3 | Marazzi | 1356
1401MA70 | Marga ,Saracena grigio,1S,33,3/33,3 | Marazzi | 1356
1401MA71 | Marga ,Saracena beige,1S,33,3/33,3 | Marazzi | 1344
1401MA71 | Marga ,Saracena beige,1S,33,3/33,3 | Marazzi | 1356
1401MA71 | Marga ,Saracena beige,1S,33,3/33,3 | Marazzi | 1356
2401CR13 | Crista,Mahon rojo,1S,33,3/33,3 | Cristacer | 1332
2401CR13 | Crista,Mahon rojo,1S,33,3/33,3 | Cristacer | 1344
所以ID
不是唯一的,我只需要 val in 最高的那个mesoyear
。
我的第一个解决方案是:
Select
c015 as ID,
c003 as Artikelbezeichnung1,
c074 as Bez2,
mesoyear
from
CWLDATEN_91.dbo.v021
group by
c015
having
mesoyear = max(mesoyear)
但这根本不起作用...
消息 8121,级别 16,状态 1,第 8
行列 'CWLDATEN_91.dbo.v021.mesoyear' 在 HAVING 子句中无效,因为它不包含在聚合函数或 GROUP BY 子句中。
所以我只是删除了having
声明,它变得“更好”:
消息 8120,级别 16,状态 1,行 2
列 'CWLDATEN_91.dbo.v021.c003' 在选择列表中无效,因为它不包含在聚合函数或 GROUP BY 子句中。
所以我试图通过将内容添加到“group by”来消除错误。它奏效了。
Select
c015 as ID,
c003 as Artikelbezeichnung1,
c074 as Bez2,
max(mesoyear)
from
CWLDATEN_91.dbo.v021
group by
c015, c003, c074
给了我我想要的。
但正确的选择包含大约 24 列和一些计算。仅通过将所有列添加到...无法解决问题group by
?
有人可以帮我找到合适的命令吗?
谢谢!