【发布时间】:2019-05-17 18:20:31
【问题描述】:
我有这个查询,但是当我运行代码时,我收到了错误消息。
选择列表中的表达式无效(不包含在聚合函数或 GROUP BY 子句中)
谁能帮帮我?
查询如下:
SELECT
obv.POS,
obv.CODVIDRO,
obv.PRENATW,
obv.FASE,
obv.LARGURA,
obv.ALTURA,
obv.QTDE,
obv.OBS,
obv.AREAEMP,
obv.PESO,
obv.CUSTO,
obv.CUSTOIPI,
obv.CODMATRIZ,
IIF( obv.CODMATRIZ > '', obv.CODMATRIZ, obv.CODVIDRO ) as CodVidro2,
vid.REF,
vid.DESCRICAO,
vid.PRENATV,
vid.ESPESSURA,
obi.Subdiv,
obi.CodEsqd,
obi.Tipo,
obi.Obs,
obi.CodOracle,
obi.Localiz,
IIF( pnw.Descricao > '', pnw.Descricao, obv.PRENATW ) as pnwDescricao,
SUM(((OBV.LARGURA/1000)*(OBV.ALTURA/1000)*OBV.QTDE)) AS AREA,
IIF(obv.CODVIDRO = 'V-ARAM-05',(SUM((((OBV.LARGURA/1000)*(OBV.ALTURA/1000)*OBV.QTDE))/3.57)), IIF(obv.CODVIDRO = 'V-MINB-04',(SUM((((OBV.LARGURA/1000)*(OBV.ALTURA/1000)*OBV.QTDE))/3.57)), (SUM((((OBV.LARGURA/1000)*(OBV.ALTURA/1000)*OBV.QTDE))/7.062)))) AS QTDECHAPAUNIT
FROM ObCalcV AS obv
LEFT JOIN Vidros vid ON (obv.CodVidro=vid.CodVidro)
LEFT JOIN ObItens obi ON (obv.ID_Obra=obi.ID_Obra AND obv.ItemObra=obi.ItemObra)
LEFT JOIN PreNat_W pnw ON (obv.PRENATW=pnw.PRENATW)
WHERE (obv.ID_OBRA = :ID_OBRA)
GROUP by obv.POS,
obv.CODVIDRO,
obv.PRENATW,
obv.FASE,
obv.LARGURA,
obv.ALTURA,
obv.QTDE,
obv.OBS,
obv.AREAEMP,
obv.PESO,
obv.CUSTO,
obv.CUSTOIPI,
obv.CODMATRIZ,
vid.REF,
vid.DESCRICAO,
vid.PRENATV,
vid.ESPESSURA,
obi.Subdiv,
obi.CodEsqd,
obi.Tipo,
obi.Obs,
obi.CodOracle,
obi.Localiz
ORDER BY CodVidro2, obv.PRENATW, obi.Tipo
完整的错误如下:
无法格式化消息 13:896 -- 找不到消息文件 C:\Windows\firebird.msg。 动态 SQL 错误。 SQL 错误代码 = -104。 选择列表中的表达式无效(不包含在聚合函数或 GROUP BY 子句中)。
【问题讨论】:
-
猜测一下 - 没时间检查 - 您还需要将
pnw.Descricao添加到group by中。 -
还有 QTDECHAPAUNIT 中使用的列
标签: sql group-by firebird firebird2.5