首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

SUM,该如何解决

2013-02-25 
SUMN_CART_ID :IDN_PRICE :单价N_AMOUNT :数量语句1:语句2:如果用语句2这样去写SUM(N_PRICE*N_AMOUNT)里的

SUM
N_CART_ID :ID
N_PRICE :单价
N_AMOUNT :数量

语句1:



语句2:


如果用语句2这样去写SUM(N_PRICE*N_AMOUNT)
里的SUM就没用了。如果要达到语句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

这个效果?
[解决办法]

感觉不是很清楚你要什么,你看看我写的这个吧
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);

[解决办法]
再套一层
SELECT SUM(AMOUNT) FROM 
(SELECT N_CART_ID,SUM(N_PRICE*N_AMOUNT) AMOUNT FROM INFO_SHOPPING_CART_TAB group by N_CART_ID)
[解决办法]
引用:
再套一层
SELECT SUM(AMOUNT) FROM 
(SELECT N_CART_ID,SUM(N_PRICE*N_AMOUNT) AMOUNT FROM INFO_SHOPPING_CART_TAB group by N_CART_ID)
  你想在分组后再SUM的话就再加一层SUM吧。
[解决办法]

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

这个行伐?

[解决办法]
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;
[解决办法]
按照你的需求只有这样了:
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

------解决方案--------------------


引用:
引用:这样应该可以:
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_CAR……


我的那条语句不能实现吗?
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
[解决办法]

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

热点排行