合并再统计,求一条SQL或存储过程。急/在线等待

bai_xiao_min 2008-04-06 11:54:04



货物名称表

内容ID(主键) 货物名称
1 货 A
2 货 B
3 货 C
4 货 D

================================================

已出货表

出货ID(主键) 出货名称("货物名称表"的名称) 赚 亏
1 货 A 100 30
2 货 D 50 3
3 货 A 30 10
4 货 A 650 20
5 货 C 70 8
5 货 D 555 80

======================================================

统计表 <---问题:我要得到这样的统计表

内容名 总赚 总亏
货A 780 60 <------总赚=100+30+650,总亏=30+10+20
货B 0 0 <------因为[出货表]的"出货名称" 里没有 "货B" ,所以赚亏都为0
货D 605 83 <------总赚=50+555,总亏=3+80
货C 70 8

...全文
90 点赞 收藏 23
写回复
23 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
liangCK 2008-04-06
[Quote=引用 18 楼 happyflystone 的回复:]
引用 17 楼 liangCK 的回复:
引用 16 楼 happyflystone 的回复:
引用 15 楼 kaikai_kk 的回复:
"枪手" 发全部都是错...

"出货名称" 和 "货物名称" 都没分清楚


呵呵,对不住了,学习我再学习

拔号上的网,不容易呀
还想抢分,
哪想那么多哦


原来现在还有拨号上网的..


在工厂干活呢。呵呵
[/Quote]
56K??
确实不容易哦..
回复
pyguang 2008-04-06
学习
回复
-狙击手- 2008-04-06
[Quote=引用 17 楼 liangCK 的回复:]
引用 16 楼 happyflystone 的回复:
引用 15 楼 kaikai_kk 的回复:
"枪手" 发全部都是错...

"出货名称" 和 "货物名称" 都没分清楚


呵呵,对不住了,学习我再学习

拔号上的网,不容易呀
还想抢分,
哪想那么多哦


原来现在还有拨号上网的..
[/Quote]

在工厂干活呢。呵呵
回复
liangCK 2008-04-06
[Quote=引用 16 楼 happyflystone 的回复:]
引用 15 楼 kaikai_kk 的回复:
"枪手" 发全部都是错...

"出货名称" 和 "货物名称" 都没分清楚


呵呵,对不住了,学习我再学习

拔号上的网,不容易呀
还想抢分,
哪想那么多哦
[/Quote]

原来现在还有拨号上网的..
回复
-狙击手- 2008-04-06
[Quote=引用 15 楼 kaikai_kk 的回复:]
"枪手" 发全部都是错...

"出货名称" 和 "货物名称" 都没分清楚
[/Quote]

呵呵,对不住了,学习我再学习

拔号上的网,不容易呀
还想抢分,
哪想那么多哦
回复
kaikai_kk 2008-04-06
"枪手" 发全部都是错...

"出货名称" 和 "货物名称" 都没分清楚
回复
林g 2008-04-06
学习
回复
kaikai_kk 2008-04-06
select a.货物名称 内容名,sum(isnull(b.赚,0)) 总赚,sum(isnull(b.亏,0)) 总亏 
from 货物名称表 a
left join 已出货表 b
on a.货物名称=b.出货名称
group by a.货物名称
回复
Limpire 2008-04-06
占个沙发还不容易
回复
kaikai_kk 2008-04-06
select a.货物名称 内容名,sum(isnull(b.赚,0)) 总赚,sum(isnull(b.亏,0)) 总亏 
from @货物名称表 a
left join @已出货表 b
on a.货物名称=b.出货名称
group by a.货物名称
回复
Limpire 2008-04-06
[Quote=引用 8 楼 fisher_man 的回复:]
嗯,4楼正解
总是慢半拍,呵呵
[/Quote]

因为“我认为”不正确的不贴出来。
回复
-狙击手- 2008-04-06
晕,不要减了

select 内容名 =  a.货物名称, 
总赚 = sum(isnull(b.赚,0)),
总亏= sum(isnull(b.亏,0))
from 货物名称表 a
left join 已出货表 b on a.货物名称 = b.货物名称
group by a.出货名称
回复
fisher_man 2008-04-06
嗯,4楼正解
总是慢半拍,呵呵
回复
-狙击手- 2008-04-06
 
select 内容名 = a.货物名称,
总赚 = sum(isnull(b.赚,0) ),
总亏= sum(isnull(b.赚,0)- isnull(b.亏,0))
from 货物名称表 a
left join 已出货表 b on a.货物名称 = b.货物名称
group by a.出货名称
回复
-狙击手- 2008-04-06
加个判断

[code=SQL
select 内容名 = a.货物名称,
总赚 = sum(isnull(b.赚,0) ),
总亏= sum(isnull(b.赚,0)- isnull(b.亏,0))
from 货物名称表 a
left join 已出货表 b on a.货物名称 = b.货物名称
group by a.出货名称[/code]
回复
-狙击手- 2008-04-06
哦,错了

select 内容名 =  a.货物名称,
总赚 = sum(b.赚 ),
总亏= sum(b.赚- b.亏)
from 货物名称表 a
left join 已出货表 b on a.货物名称 = b.货物名称
group by a.出货名称
回复
Limpire 2008-04-06
--> 测试数据: #1
if object_id('tempdb.dbo.#1') is not null drop table #1
create table #1 (内容ID int,货物名称 varchar(3))
insert into #1
select 1,'货A' union all
select 2,'货B' union all
select 3,'货C' union all
select 4,'货D'
--> 测试数据: #2
if object_id('tempdb.dbo.#2') is not null drop table #2
create table #2 (出货ID int,出货名称 varchar(3),赚 int,亏 int)
insert into #2
select 1,'货A',100,30 union all
select 2,'货D',50,3 union all
select 3,'货A',30,10 union all
select 4,'货A',650,20 union all
select 5,'货C',70,8 union all
select 5,'货D',555,80


select 内容名=a.货物名称,总赚=sum(isnull(b.赚,0)),总亏=sum(isnull(b.亏,0)) from #1 a left join #2 b on a.货物名称=b.出货名称 group by a.货物名称

/*
内容名 总赚 总亏
---- ----------- -----------
货A 780 60
货B 0 0
货C 70 8
货D 605 83
*/
回复
-狙击手- 2008-04-06
恩?




select 内容名 = b.货物名称,
总赚 = sum(b.赚 ),
总亏= sum(b.赚- b.亏)
from 已出货表 b
group by 出货名称
回复
bai_xiao_min 2008-04-06
TO:kaikai_kk

不小心打错了,主键没有重复。
回复
kaikai_kk 2008-04-06
已出货表

"出货ID"主键有重复值5
回复
加载更多回复
相关推荐
基于java的企业人事管理系统设计--软件工程课程设计(含源码与论文设计).rar 1 引言 4 1.1 课程设计目标 4 1.2 编程工具(编程环境)介绍 4 1.3 实施时间及主要实施步骤 4 2 需分析 5 3 系统总体设计 6 4 数据库设计 6 5 主要功能模块的设计与实现 10 5.1 功能模块1详细设计(综合查询员工信息)..........................................................10 5.1.1 详细设计.......................................................................................................10 5.1.2 算法流程........................................................................................................15 5.1.3 界面设计及测试结果.....................................................................................15 6 调试分析 15 7 用户手册 16 8 测试结果 17 8.1 员工信息的添加...................................................................................................17 8.2 员工信息的修改...................................................................................................17 8.3 员工信息的删除...................................................................................................18 8.4 员工信息的综合查询...........................................................................................18 8.5 员工信息按性别统计的结果................................................................................19 8.6 员工信息按状态统计的结果...............................................................................19 8.7 员工信息按职称统计的结果................................................................................20 9 结论 20 10 参考文献 20
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2008-04-06 11:54
社区公告
暂无公告