2011-08-09 95 views
0
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 

我不想包含的成本(已使用的情況下staement計算在SELECT) 在GROUP BY子句中包括組案例別名,請幫助我。 我使用Oracle作爲當你通過,你基本上是將很多行到一個使用一組RDBMS不想by子句

回答

4

。您可以使用GROUP BY列確保組中每一行的值相同,或者您以某種方式彙總值(最小,最大,平均等)

如果您未指定列在羣組中,由於它們不在羣組中,因此它們可能是不同的,並且需要明確你想要哪個羣組)

你可以在COST周圍包裝一個聚合即SUM(成本),如果你想要的總和,或MAX(成本),如果他們總是相同的行對行(雖然爲什麼不只是按組呢?)