日期:2014-05-18  浏览次数:20543 次

SQL中求一列的和
数据库中有三张表:
StoreIn: WZMC,ShuLiang,Price,TotalPrice
  鼠标 5 10 50
  键盘 4 10 40
  鼠标垫 3 10 30
  鼠标 5 20 100

StoreOut: WZMC,ShuLiang,Price,TotalPrice
  鼠标 5 20 100
  键盘 4 20 80
  鼠标垫 3 20 60
  鼠标 5 30 150

StoreTable: WZMC,ShuLiang,Price,TotalPrice
  鼠标 5 10 50
  键盘 4 10 40
  鼠标垫 3 10 30
  鼠标 5 20 100

求TotalPrice的总和,并且帮忙求下:利润用这三张表怎么算的?

我自己写的SQL语句如下,麻烦帮我改下,谢谢~!~!~

SELECT ROW_NUMBER() OVER (ORDER BY SUM(ShuLiang),SUM(TotalPrice) DESC) AS NO,WZMC,Price,SUM(ShuLiang)AS ShuLiang,SUM(TotalPrice) FROM dbo.StoreIn where 1=1
  GROUP BY WZMC,Price

------解决方案--------------------
你除了求 totalprice 的总和,还是要求利润?你的利润公式是怎样的?

------解决方案--------------------
SQL code

方法一: select a.TotalPrice + b.TotalPrice +c.TotalPrice from  
(select WZMC,ShuLiang,sum(TotalPrice) TotalPrice from StoreIn group by WZMC,ShuLiang)a,
(select WZMC,ShuLiang,sum(TotalPrice) TotalPrice from Storeout group by WZMC,ShuLiang)b,
(select WZMC,ShuLiang,sum(TotalPrice) TotalPrice from StoreTable group by WZMC,ShuLiang) c
where a.wzmc=b.wzmc and a.wzmc=c.wzmc and a.ShuLiang=b.ShuLiang and c.ShuLiang=a.ShuLiang

--这个是求总和的

方法二:
select sum(a.TotalPrice) + sum(b.TotalPrice)+sum(c.TotalPrice)
from  StoreIn a,Storeout b,StoreTable c 
where a.wzmc=b.wzmc and a.wzmc=c.wzmc and a.ShuLiang=b.ShuLiang and c.ShuLiang=a.ShuLiang

------解决方案--------------------
没看懂你要求的totalprice到底是什么东东。。。-。-!
利润应该是:销售额-成本吧
按你的逻辑
应该是
利润=卖出的totalprice - 买进的totalprice
利润应该和库存里的没什么关系,就看你一共进了多少,放库存里卖不出去就是赔钱,不管卖没卖出去都是成本。
------解决方案--------------------
不用看你是否全卖出去了,成本是不变的(在你的问题里)。所以和库存的没关系,举个例子
买东西用了100块,20个
你卖了10个每个10块,
库里剩了10
你的利润就是 10 * 10 - 100 = 0
只和你按什么价钱卖出去有关系,在库里面的只是成本
之后,你只要卖出去一个就赚一个钱,你的利润最大值就是100。
不是你上面写的,10 * 10 - 10 * 5 = 50如果这样计算,这时你如果库存里面的都滞销了,一个卖不出去了,最后退出市场了,1块一个处理的,那就是10块钱,你收入的是100+10付出的是100,你的利润才10块啊,不是50.