SELECT SUM (e.quantity) AS quantity
,e.tran_id
,e.SEQUENCE
,MAX (e.veh) AS veh
,a.DATE AS DATE
,a.aloc_sequence
,CASE
WHEN a.currency = 'USD' THEN e.COST
ELSE e.COST * getrate ('ABC'
,a.currency
,a.DATE
)
END AS cost
FROM execution e
,vehicles v
,allocation a
WHERE e.vehicle = v.vehicle
AND a.part_id = e.part_id
AND a.aloc_sequence = e.aloc_sequence
GROUP BY e.tran_id
,e.SEQUENCE
,date
,a.aloc_sequence
我不想包含成本(已使用SELECT中的案例计算) 在group by条款中,请帮助我。 我使用oracle作为rdbms
答案 0 :(得分:4)
当您使用group by时,您实际上是将许多行合并为一个。您可以使用GROUP BY列,这可以保证组中每行的值相同,也可以通过某种方式聚合值(min,max,avg等)
如果你没有在group by中指定一个列,那么返回哪个值是不明确的(因为它们不在组中,它们可能不同,你需要明确你想要哪一个)
如果你想要总和,你可以围绕COST包装聚合,即SUM(成本),如果它们在行与行之间总是相同,则可以包括MAX(成本)(尽管为什么不在那时分组?)< / p>