三个表:
表1:商品信息表,表2:销售表,表3:进货表。
select t1.商品名称 ,sum(t3.amount) as 进货支出,sum(t4.amount) as 销售收入
from 商品信息表 t1
left join 进货表 t3 on t1.商品名称=t3.商品名称
left join 销售表 t4 on t1.商品名称=t4.商品名称
group by t1.商品名称执行后,sum(t3.amount) 数据不正确,如果写成这样:select t1.商品名称 ,sum(t3.amount) as 进货支出
from 商品信息表 t1
left join 进货表 t3 on t1.商品名称=t3.商品名称
group by t1.商品名称执行取得的数据是正确的。
后来怀疑是不是将表2与表3的amount值累加了,经查又不是。在销售表(t4)中删除一笔交易,再查询,发现sum(t3.amount)的值变了,但是减少的数值不等于删除的数据。
莫名其妙
莫名其妙
莫名其妙
莫名其妙
莫名其妙
表1:商品信息表,表2:销售表,表3:进货表。
select t1.商品名称 ,sum(t3.amount) as 进货支出,sum(t4.amount) as 销售收入
from 商品信息表 t1
left join 进货表 t3 on t1.商品名称=t3.商品名称
left join 销售表 t4 on t1.商品名称=t4.商品名称
group by t1.商品名称执行后,sum(t3.amount) 数据不正确,如果写成这样:select t1.商品名称 ,sum(t3.amount) as 进货支出
from 商品信息表 t1
left join 进货表 t3 on t1.商品名称=t3.商品名称
group by t1.商品名称执行取得的数据是正确的。
后来怀疑是不是将表2与表3的amount值累加了,经查又不是。在销售表(t4)中删除一笔交易,再查询,发现sum(t3.amount)的值变了,但是减少的数值不等于删除的数据。
莫名其妙
莫名其妙
莫名其妙
莫名其妙
莫名其妙
解决方案 »
- access指定数据导入mssql指定表
- 小弟用delphi下的InstallShield打包,我的程序才0.99m,打包出来,有4m多,请问为什么会这么大呢?有没有办法打包打的很小呢?
- 请问我怎么知道一条 updata语句是否修改成功?
- 请教quickReport制报表怎么在每页加一个合计?
- 用edit里的数据控制shape控件运动不成功?什么问题?
- 我使用的delphi7中 tidhttp 类型不识别怎么办?
- 我想买套正版delphi,用盗版分发会有问题吗?,borland能否看出是盗版开发的?
- 除了form1.close还有没有关闭程序的方法?越多越好。
- 请问如何对Formula One 6.0中选定的单元格进行合并,用代码控制哦,很有意思?
- 请教delphi+java开发
- 使用DBGrid向数据库中添加数据空行问题怎么解决?
- 如何使edit的text显示其它几个edit.text的累加?
t1.商品名称 ,
'进货支出'=(select isnull(sum(amount),0) from 进货表 where 商品名称=a.商品名称),
'销售收入'=(select isnull(sum(amount),0) from 销售表 where 商品名称=a.商品名称)
from 商品信息表 a
select
distinct
t1.商品名称 ,
'进货支出'=(select isnull(sum(amount),0) from 进货表 where 商品名称=a.商品名称),
'销售收入'=(select isnull(sum(amount),0) from 销售表 where 商品名称=a.商品名称)
from 商品信息表 a
你用的什么数据库?实在不行你看看 字段amount的数据类型吧!
用4楼方法试试看
select
a.商品名称 ,
'进货支出'=(select isnull(sum(amount),0) from 进货表 where 商品名称=a.商品名称),
'销售收入'=(select isnull(sum(amount),0) from 销售表 where 商品名称=a.商品名称)
from 商品信息表 a
fa_ge 的语句是对的!不过要修理一下!select
distinct
a.商品名称 ,
'进货支出'=(select isnull(sum(amount),0) from 进货表 where 商品名称=a.商品名称),
'销售收入'=(select isnull(sum(amount),0) from 销售表 where 商品名称=a.商品名称)
from 商品信息表 a
select 语句中,还要用t3.amount与其它列进行运算,如:
select a.商品名称 ,
'进货支出'=(select isnull(sum(amount),0) from 进货表 where 商品名称=a.商品名称),
'销售收入'=(select isnull(sum(amount),0) from 销售表 where 商品名称=a.商品名称),
t4.amount-t3.amount as 利润
from 商品信息表 a 应该如何进行替换?
select a.商品名称 ,
'进货支出'=(select isnull(sum(amount),0) from 进货表 where 商品名称=a.商品名称),
'销售收入'=(select isnull(sum(amount),0) from 销售表 where 商品名称=a.商品名称),
((select isnull(sum(amount),0) from 销售表 where 商品名称=a.商品名称)-
(select isnull(sum(amount),0) from 进货表 where 商品名称=a.商品名称)) as 利润
from 商品信息表 a