Group By 问题, 有点难

sunhappy1 2006-05-17 07:42:18
Select sum(fieldA) From Table1 as A
inner join Table2 as B
on A.ID = B.ID
group by A.fieldB -----得出结果
fieldA
111
Union
Select sum(fieldA) From Table1 as A
inner join Table2 as B
on A.ID = B.ID
group by A.fieldC ------得出结果
fieldA
222
-------最终结果
fieldA
111
222

如何优化该语句?现在要分别按Tabel1表的字段fieldB和fieldC进行统计,然后进行Union
这样子对Tabel1 和Tabel2表访问了两次,能不能访问一次就得出结果
...全文
226 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhappy1 2006-05-18
  • 打赏
  • 举报
回复
其实在实际中Company表是从四五个表中查询得出来的。这里我已经简化了,另外数据量
有点大。所以我想如果只对Project和Company表查询一次,就能得出结果,那就太爽啦!
sunhappy1 2006-05-18
  • 打赏
  • 举报
回复
不好意思,昨晚没上网!多谢各位大佬的关注。
具体应该是这样的。
Create table Project(CaseID varchar(20),HouseArea int)
Create table Company(CaseID varchar(20),RegisteTypeBM varchar(20),AptitudeBM varchar(20))

Insert into Project(CaseID,HouseArea) values('01',11)
Insert into Project(CaseID,HouseArea) values('02',22)

Insert into Company(CaseID,RegisteTypeBM,AptitudeBM) values('01','R1','A1')
Insert into Company(CaseID,RegisteTypeBM,AptitudeBM) values('02','R2','A1')


Select Sum(A.HouseArea) From Project as A
inner join Company as B
on A.CaseID = B.CaseID
group by B.RegisteTypeBM
Union

Select Sum(A.HouseArea) From Project as A
inner join Company as B
on A.CaseID = B.CaseID
group by B.AptitudeBM
linlux 2006-05-17
  • 打赏
  • 举报
回复
haha ,我是新手我来提高我的知名度的,帮不了什么忙,我也顶下吧
losedxyz 2006-05-17
  • 打赏
  • 举报
回复
mark
paoluo 2006-05-17
  • 打赏
  • 举报
回复
這個語句應該沒有辦法更優化了。
liangpei2008 2006-05-17
  • 打赏
  • 举报
回复
楼主呢??
wwh999 2006-05-17
  • 打赏
  • 举报
回复
LZ,贴出你的数据,你这样提问题,会让别人都看不明白,成问题了的!
云中客 2006-05-17
  • 打赏
  • 举报
回复
楼主,把问题说得清楚些,最好把表的数据贴一部分出来
liangpei2008 2006-05-17
  • 打赏
  • 举报
回复
把简要的表结构贴出来

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧