A 表ID,Type,TypeNo,batchMoney
1 WWW 001 1000
2 WWW 002 3000
3 CCC 003 4000B表Type,TypeNo Money
WWW 001 500
WWW 001 10
WWW 001 20
WWW 002 200
WWW 002 300
WWW 003 400
结果:
Type,TypeNo,batchMoney TotalMoney( sum(Money) )
WWW 001 1000 530
WWW 002 3000 500
WWW 003 4000 400我的方法
Select A.Type,A.TypeNo,A.batchMoney,Sum(B.Money) as TotalMoney
From A Left join B ON
A.Type=B.Type and A.TypeNo = B.typeNoGroup by
A.Type,A.TypeNo,A.batchMoney,
B.Type,B.TypeNo我的方法好像非常笨,B数据一旦非常庞大,Group这么多列,很慢,搞不懂怎么优化!那位帮忙优化一下
1 WWW 001 1000
2 WWW 002 3000
3 CCC 003 4000B表Type,TypeNo Money
WWW 001 500
WWW 001 10
WWW 001 20
WWW 002 200
WWW 002 300
WWW 003 400
结果:
Type,TypeNo,batchMoney TotalMoney( sum(Money) )
WWW 001 1000 530
WWW 002 3000 500
WWW 003 4000 400我的方法
Select A.Type,A.TypeNo,A.batchMoney,Sum(B.Money) as TotalMoney
From A Left join B ON
A.Type=B.Type and A.TypeNo = B.typeNoGroup by
A.Type,A.TypeNo,A.batchMoney,
B.Type,B.TypeNo我的方法好像非常笨,B数据一旦非常庞大,Group这么多列,很慢,搞不懂怎么优化!那位帮忙优化一下
解决方案 »
- 怎么判断字符串中的字符是占用一个字节还是两个字节呢?
- 用过cxgrid的请进来一下,有一个简单的问题想问问,在线等!!!
- 简单问题,快来抢分,请问如果把一个16进制数转化为整型?并打印出结果。
- 刚学没几天,求救
- 请问在操作execl中如何设置下划线????????????
- 求救:Adoquery的查询参数问题
- 支持 一下 我9:10 揭贴 给分
- 如何实现端点续传!!用到了那些技术?
- 有谁知道demo下的\Corba\Idl2Pas\CosNaming下的例子怎样执行?或者能够提供给小弟一个命名服务的例子!
- 求助Delphi怎么找常量?
- 如何设置Word中某一段文字的颜色?
- Delphi软件假死
select a.*,c.TotalMoney from a left join (select B.Type,B.TypeNo,Sum(B.Money) as TotalMoney from b group by B.Type,B.TypeNo) C on A.Type=c.Type and A.TypeNo = c.typeNo
From A Left join
(select B.Type,B.TypeNo ,Sum(B.Money) as TotalMoney from B Group by
B.Type,B.TypeNo) C
ON
A.Type=C.Type and A.TypeNo = C.typeNo不知道这样是不是快点 你最好区SQL区问问,那边专家多 哈哈
这样乘积的记录数会少很多
CASE TYPENO WHEN TYPENO THEN (SELECT ISNULL(SUM(MONEY),0) FROM B WHERE TYPE=A.TYPE AND TYPENO=A.TYPENO) ELSE 0 END AS SS
FROM A確認
A 表
ID,Type,TypeNo,batchMoney
1 WWW 001 1000
2 WWW 002 3000
3 CCC 003 4000 <和B表 Type,TypeNo Money
WWW 001 500
WWW 001 10
WWW 001 20
WWW 002 200
WWW 002 300
WWW 003 400 <
ID,Type,TypeNo,batchMoney
1 WWW 001 1000
2 WWW 002 3000
3 CCC 003 4000如果TypeNo是唯一的,可以建立聚集索引,ID建立索引后,效果不是很明显。
索引只有在你使用的情况下才能发挥最大效用
结合二楼的:
Select A.Type,A.TypeNo,A.batchMoney, C.TotalMoney
From
(select B.Type,B.TypeNo ,Sum(B.Money) as TotalMoney from B Group by
B.Type,B.TypeNo) C Left join A
ON
A.Type=C.Type and A.TypeNo = C.typeNo
2、Group By 后面的字段重复,Type,TypeNo已经作为表间关联了,Group By 一次就可以了;比较高率一点的代码 10楼的就可以:Select A.Type,A.TypeNo,A.batchMoney, C.TotalMoney
From
(select B.Type,B.TypeNo ,Sum(B.Money) as TotalMoney from B Group by
B.Type,B.TypeNo) C Left join A
ON
A.Type=C.Type and A.TypeNo = C.typeNo