2013-08-23 120 views
0

我一直在下面的查询,并不能让它来计算:COMPUTE SUM工作不正常

BREAK ON "Package ID" SKIP 2 on report 
COMPUTE SUM OF "Package Cost" ON "Package ID" 
COMPUTE SUM OF "Package Cost" ON REPORT; 
Select distinct p.PkgID "Package ID", p.PkgName "Package Type", to_char(p.PkgCost, '$99.99')"Package Cost", c.CustFName || ' ' || c.CustLName as "Customer Name" 
FROM Subscription s, Package p, Customer c 
WHERE p.PkgID = s.PkgID 
AND c.CustID = s.CustID  
AND trunc (s.startdate)=to_date('Oct 01, 2012', 'Mon DD, YYYY') 
ORDER BY p.PkgID; 

输出看起来是这样的:

Package ID Package Type Package Cost Customer Name                                     
---------- --------------- ------------- ---------------------------------------------------                            
10101 Movies Galore $30.00  Frank Cinatra                                     
     Movies Galore $30.00  Krystal Carter                                     
**********   -------------                                         


20202 News Globe  $30.00  Billy Joel                                      
     News Globe  $30.00  Dia Nelson                                      
     News Globe  $30.00  Rhonda Shields                                     
**********   -------------                                         


30303 Total Watcher $40.00  Frank McMann                                     
     Total Watcher $40.00  Orlando Magic                                     
**********   -------------                                         


40404 Couch Potato  $50.00  Allan Bubbles                                     
**********   -------------                                         


         -------------    

不能得到它来计算的成本。它打破了包裹,甚至放入分界线,只是没有总数。也不会标签。我只是想念一些愚蠢的东西?

+0

这不是任何SQL Server语法我所熟悉的。 –

+1

@BrendanLong:它实际上是一个SQL * Plus功能(总和在客户端由SQL * Plus计算)。 –

+0

@Brendan,是的,它是SQL * Plus中提到的。对不起,当我写这篇文章时感到厌倦和沮丧,并没有认为这些信息会有帮助。 – Jim

回答

0

我已经创建示例表作为您的数据:

PACKAGE_ID PACKAGE_TYPE   PACKAGE_COST C_NAME    
---------- -------------------- ------------ -------------------- 
    10101 Movies_Galore     30 Frank_Cinatra   
    10101 Movies_Galore     30 Krystal_Carter  
    20202 News_Globe      30 Billy_Joel   
    20202 News_Globe      30 Dia_Nelson   
    20202 News_Globe      30 RhondA_Shields  
    30303 Total_Watcher     40 Frank_McMann   
    30303 Total_Watcher     40 rlando_Magic   
    40404 Couch_Potato     50 Allan_Bubbles  

SQL> break on package_id skip 1; 
SQL> compute sum label 'package cost' of package_cost on package_id; 
SQL> COLUMN package_cost FORMAT $99,99 
SQL> select * from test; 

PACKAGE_ID PACKAGE_TYPE   PACKAGE_COST C_NAME 
---------- -------------------- ------------ -------------------- 
    10101 Movies_Galore     $30 Frank_Cinatra 
      Movies_Galore     $30 Krystal_Carter 
**********      ------------ 
package co        $60 

    20202 News_Globe     $30 Billy_Joel 
      News_Globe     $30 Dia_Nelson 
      News_Globe     $30 RhondA_Shields 
**********      ------------ 
package co        $90 


PACKAGE_ID PACKAGE_TYPE   PACKAGE_COST C_NAME 
---------- -------------------- ------------ -------------------- 
    30303 Total_Watcher     $40 Frank_McMann 
      Total_Watcher     $40 rlando_Magic 
**********      ------------ 
package co        $80 

    40404 Couch_Potato     $50 Allan_Bubbles 
**********      ------------ 
package co        $50