如何构造这样的sql语句??

xiaohyy 2002-10-29 12:25:44
我有两个表table_A(name,ncount) table_B(name,ncount)
我要得到这样一个结果:得到两个字段,第一个字段是name,第二个字段是table_A中的和table_A.name相关的ncount的总和减去table_B中的和table_B.name相关的ncount的总和
比如table_A中有这样几条记录
(name1,2)
(name1,3)
(name2,4)
table_B 中有
(name1,1)
(name1,1)
(name2,1)
我希望得到
(name1,3)(这里3=2+3-1-1)
(name2,3)(这里3=4-1)
我的sql语句如下:
select distinct table_A.name,sum(table_A.ncount)-sum(table_B.ncount) total
from table_A,table_B
where table_A.name=table_B.name

可是这样出现以下一个问题:
1:不能识别别名(在这里是total),显示操作符丢失错误
2:在有集函数(在这里是sum)的情况下有这样的错误:试图执行的查询中不包含作为合计函数一部分的特定表达式 'name'

这种问题如何解决,谢谢!!!
...全文
39 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
大健 2002-10-29
  • 打赏
  • 举报
回复
select
[name],
( select (sum(A.ncount) -sum(B.ncount)) from A,table_B
where A.ncount =B.ncount) order by a.name
) as [total]
from table_a A
xiaohyy 2002-10-29
  • 打赏
  • 举报
回复
to grooving(技不如人)
我用的是access
lixigang 2002-10-29
  • 打赏
  • 举报
回复
select a.name ,a.total -b.total as total from (select name,sum(ncount) as total from table_a group by name) a inner join (select name,sum(ncount) as total from table_b group by name) b on a.name=b.name
grooving 2002-10-29
  • 打赏
  • 举报
回复
可以写成存储过程,用两个游标,一个得到tableA中的总合,另一个在上个游标中得到tableA.name,并计算ncount的总合,最后一减就出来了。
大健 2002-10-29
  • 打赏
  • 举报
回复
order by改成group by
spring_ok 2002-10-29
  • 打赏
  • 举报
回复
access的话就做两个视图,分别保存两个子查询。
再在此视图基础上来查。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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