【发布时间】:2014-09-03 12:09:59
【问题描述】:
我得到了以下 SQL
SELECT GEP.KOD, GEP.IRSZ, GEP.VAROS, GEP.UTCA, GEP.UGYINT, GEP.EMELET, CIKK.NEV,
GEPELEM.SZAMLALO FROM GEP LEFT JOIN CIKK ON GEP.CIKK = CIKK.KOD LEFT JOIN GEPELEM ON
GEPELEM.KOD = GEP.KOD WHERE CEG = 27013
GROUP BY GEPELEM.SZAMLALO, GEP.KOD, GEP.IRSZ, GEP.VAROS, GEP.UTCA, GEP.UGYINT, GEP.EMELET, CIKK.NEV
我想按 GEPELEM.SZAMLALO 使用其可用的最大值进行分组...
如果我通过语句删除 GRoup 并且只保留 GEP.ELEM.SZAMLALO,则会出现错误
[Error Code: 335544569, SQL State: 42000] GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -104
Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)
如果我在 SELECT 中使用 max() 函数,它什么也不做。 SQL 运行,但结果没有改变
如果我在按原因分组和选择中使用 max():
[Error Code: 335544569, SQL State: 42000] GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -104
Token unknown - line 2, column 11
max
如果我只在 Group by Cause 中使用它,也会出现同样的错误..
这是firebird 1.5.6(没有选择升级),我来自MySQL背景。
【问题讨论】:
-
“我想使用可用的最大值按 GEPELEM.SZAMLALO 进行分组”。我不明白你想做什么。尝试使用示例数据和所需结果编辑问题。