SUM

N_CART_ID :ID
N_PRICE :单价
N_AMOUNT :数量语句1:SELECT SUM(N_PRICE*N_AMOUNT) FROM INFO_SHOPPING_CART_TAB语句2:SELECT N_CART_ID,SUM(N_PRICE*N_AMOUNT) FROM INFO_SHOPPING_CART_TAB group by N_CART_ID如果用语句2这样去写SUM(N_PRICE*N_AMOUNT)
里的SUM就没用了。如果要达到语句1的效果还要循环下数据加一下?

解决方案 »

  1.   

    WITH TEST AS (
    SELECT '44' AS N_CART_ID,'6999' AS N_PRICEN_AMOUNT FROM DUAL
    UNION ALL
    SELECT '61' AS N_CART_ID,'4500' AS N_PRICEN_AMOUNT FROM DUAL
    UNION ALL
    SELECT '62' AS N_CART_ID,'24600' AS N_PRICEN_AMOUNT FROM DUAL
    UNION ALL
    SELECT '63' AS N_CART_ID,'14498' AS N_PRICEN_AMOUNT FROM DUAL
    UNION ALL
    SELECT '65' AS N_CART_ID,'26400' AS N_PRICEN_AMOUNT FROM DUAL
    UNION ALL
    SELECT '81' AS N_CART_ID,'796' AS N_PRICEN_AMOUNT FROM DUAL
    )
    select N_CART_ID,SUM(N_PRICEN_AMOUNT)OVER() AS N_PRICEN_AMOUNT FROM TEST这个效果?
      

  2.   


    感觉不是很清楚你要什么,你看看我写的这个吧
    SELECT DECODE(GROUPING(n_cart_id), 1, 'All value',
       n_cart_id) AS n_cart_id,
       SUM(n_price*n_amount)
       FROM info_shopping_cart_tab
       GROUP BY ROLLUP (n_cart_id);
      

  3.   

    再套一层
    SELECT SUM(AMOUNT) FROM 
    (SELECT N_CART_ID,SUM(N_PRICE*N_AMOUNT) AMOUNT FROM INFO_SHOPPING_CART_TAB group by N_CART_ID)
      

  4.   

      你想在分组后再SUM的话就再加一层SUM吧。
      

  5.   

    如果这样查呢,按照你的应该怎样写SELECT n_price,n_amount,N_CART_ID,SUM(N_PRICE*N_AMOUNT) FROM INFO_SHOPPING_CART_TAB
      

  6.   

    我的意思是查询其他的列 和 SUM(N_PRICE*N_AMOUNT),这样写查询的结果是不是没有N_CART_ID的数据啊
      

  7.   

    就是在一个查询语句里要查询表的其他列,还要得到 单价*数量 的所有总钱数
    用我的语句1 只有总钱数 没有 其他列的书数据
    语句2 有其他列的数据 但是没有总钱数 只查询 N_CART_ID,SUM(N_PRICE*N_AMOUNT) 这些用你说的可以
     如果查询 n_price,n_amount,N_CART_ID,SUM(N_PRICE*N_AMOUNT) 在加上两列 语句应该怎样写
      

  8.   


    SELECT a.n_cart_id,a.gross,b.gross FROM
    (SELECT n_cart_id,SUM(n_price*n_amount) gross
       FROM info_shopping_cart_tab 
       GROUP BY n_cart_id) a,(SELECT SUM(n_price*n_amount) gross
    FROM    info_shopping_cart_tab) b这个行伐?
      

  9.   

    select d.id,sum(d.num1*d.num2) from test1 d group by d.id
    union all 
    select '求和' , sum(d.num1*d.num2) from test1 d;
      

  10.   

    这样应该可以:
    SELECT N_CART_ID,SUM(N_PRICE*N_AMOUNT) FROM INFO_SHOPPING_CART_TAB group by N_CART_ID
    union all 
    SELECT '求和', SUM(N_PRICE*N_AMOUNT) FROM INFO_SHOPPING_CART_TAB
      

  11.   

    按照你的需求只有这样了:SELECT N_CART_ID,N_PRICE,N_AMOUNT,SUM(N_PRICE*N_AMOUNT) AMOUNT FROM INFO_SHOPPING_CART_TAB group by N_CART_ID,N_PRICE,N_AMOUNT
      

  12.   

    ORA-01790表达式必须具备与对应表达式相同的数据类型
      

  13.   


    我的那条语句不能实现吗?
    SELECT a.n_cart_id,a.gross,b.gross FROM
    (SELECT n_cart_id,SUM(n_price*n_amount) gross
       FROM info_shopping_cart_tab 
       GROUP BY n_cart_id) a,
     
    (SELECT SUM(n_price*n_amount) gross
    FROM    info_shopping_cart_tab) b
      

  14.   


    SELECT cart_id
          ,price
          ,amount
          ,SUM(price*amount) over()
     FROM temp