如果你不喜欢重复复杂的表达式,你可以使用子查询来代替:
select Table_A.Po_no, Table_A.rmcode, SUM(Table_A.weight) as recvqty,
po_noRM
from (SELECT Table_A.Po_no, Table_A.rmcode,
LTRIM(RTRIM(Table_A.po_no)) + LTRIM(RTRIM(Table_A.rmcode)) as po_noRM
FROM Table_A
) T
group by po_noRM, Po_no, rmcode
ORDER BY 1 desc
这对性能没有影响。
我修复了查询以包括除 group b 语句中的总和之外的所有列。此外,在 rtrim(ltrim()) 语句中还提到了另一个表。我将其更改为 Table_A。
但是,我怀疑这个查询并没有做你真正想要的(这是为了减少返回的行数,因为你仍然按 po_noRM 的组件进行分组)。这可能更接近您想要的:
select Po_no_trim, rmcode_trim, SUM(Table_A.weight) as recvqty,
(po_no_trim+rmcode_trim) as po_noRM
from (SELECT LTRIM(RTRIM(Table_A.po_no)) as po_no_trim,
LTRIM(RTRIM(Table_A.rmcode)) as rmcode_trim, Table_A.weight
FROM Table_A
) T
group by po_noRM_trim, Po_no_trim
ORDER BY 1 desc