以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教一个SQL语句  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=74145)

--  作者:rjh4078
--  发布时间:2015/9/4 8:17:00
--  请教一个SQL语句
 同一个表中  有 编号 金额 类型 三列 如何将类型为A的金额总和减去 类型为B的金额总和 得出一个新的金额

--  作者:大红袍
--  发布时间:2015/9/4 9:21:00
--  

select 编号, (select sum(金额) f rom {表A} b where b.编号 = a.编号 and b.类型 = "A") - (select sum(金额) f rom {表A} b where b.编号 = a.编号 and b.类型 = "B") As 金额 f rom {表A} a group by 编号


--  作者:rjh4078
--  发布时间:2015/9/4 17:12:00
--  
 老师 按照你的方法 现在出现如下报错

.NET Framework 版本:2.0.50727.6421
Foxtable 版本:2014.11.11.1
错误所在事件:
详细错误信息:
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。
当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。

--  作者:大红袍
--  发布时间:2015/9/4 17:20:00
--  

代码没有问题

 

select 编号, (select sum(金额) f rom {表A} b where b.编号 = a.编号 and b.类型 = "A") - (select sum(金额) f rom {表A} c where c.编号 = a.编号 and b.类型 = "B") As 金额 f rom {表A} a group by 编号


--  作者:rjh4078
--  发布时间:2015/9/4 21:07:00
--  
 我再测试下 因为数据源是postgresql 不知道会不会有不同

--  作者:大红袍
--  发布时间:2015/9/6 10:13:00
--  
以下是引用rjh4078在2015/9/4 21:07:00的发言:
 我再测试下 因为数据源是postgresql 不知道会不会有不同

 

你直接在其sql测试工具那里写是否有问题?