SQL高手帮帮忙呀,这净利润到底是怎么算出来的!如果出现这样的情况,那怎么算?(20分)

  • 主题发起人 主题发起人 delphiere
  • 开始时间 开始时间
D

delphiere

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是ACCESS!
库存表:
名称 类型 数量 价格 日期
CPU intel 2 640 2002-10-22
CPU intel 2 680 2002-10-25
显示器 三星 3 870 2002-10-25

销售表:
单句 名称 类型 数量 价格 日期
XS001 CPU intel 3 720 2002-10-30
XS001 显示器 三星 3 900 2002-10-25
这样的算利润要如何算呢?正确应该是290元才对!可为什么我用下列的语句
with adoquery1 do
begin
close;
sql.Clear;
sql.add('select 销售表.单据,sum((销售表.价格-库存表.价格)*销售表.数量) as 利润,min(库存表.价格) as 价格 from 销售表,库存表
where 销售表.名称=库存表.名称 and 销售表.型号=库存表.型号 and 销售表.单据='''+dbedit1.text+''' group by 销售表.单据');
open;
lrun_string:=adoquery1.FieldValues['lirun'];
按我这样的SQL语句,得到的却是370,和事实有很大的出入呀,这是为什么呢?
 
group by 销售表.单据
多算了CPU
 
我知道肯定是多算了一部分的CPU,可上面语句要如何改呀!高手帮我看看吧!
我也是有分组了呀?
 
我看你这个只有全部卖完的才可以算利润
否则你就应该每批都有id,每个卖出的都有id对应
 
我每批都有ID对应的呀。请大家帮我看看吧!

还有我不知道一般算利润是如何算法的,是每销售一批货物计算出利润呢?
还是等月末在进行计算总利润?
我采取的是第一种的方法,每销售一张,就把利润存入利润表,然后,在月末对单据进行统计,
所以就出现了上面的问题:
如果是等到月末在算利润的话,应该也会出现这样的问题呀!
如何避免当存在同一产品并且同一型号,但是不同价格时候,该如何结算净利润呢?
谢谢!

 
多人接受答案了。
 
后退
顶部