有以下数据 表A
Name Cash
--------------------
马振远 ¥-100.00
马振远 ¥100.00
高静 ¥150.00
高静 ¥-100.00
杨兰 ¥400.00
杨兰 ¥-400.00
于静波 ¥30.00
于静波 ¥60.00
王波 ¥90.00
张小发 ¥-90.00请教关于SQL查询 name列重复 且 Cash列互为相反数 方法希望得到以下查询结果:
Name Cash
--------------------
马振远 ¥-100.00
马振远 ¥100.00
杨兰 ¥400.00
杨兰 ¥-400.00
我已经找出Name列重复的方法.还需要判断Cash列互为相反数的方法.SELECT A.Name,A.Cash
FROM A
WHERE (((A.Name) In (select Name from A group by name having count(*)>1)) AND 需要判断互为相反数的方法);
Name Cash
--------------------
马振远 ¥-100.00
马振远 ¥100.00
高静 ¥150.00
高静 ¥-100.00
杨兰 ¥400.00
杨兰 ¥-400.00
于静波 ¥30.00
于静波 ¥60.00
王波 ¥90.00
张小发 ¥-90.00请教关于SQL查询 name列重复 且 Cash列互为相反数 方法希望得到以下查询结果:
Name Cash
--------------------
马振远 ¥-100.00
马振远 ¥100.00
杨兰 ¥400.00
杨兰 ¥-400.00
我已经找出Name列重复的方法.还需要判断Cash列互为相反数的方法.SELECT A.Name,A.Cash
FROM A
WHERE (((A.Name) In (select Name from A group by name having count(*)>1)) AND 需要判断互为相反数的方法);
解决方案 »
- 仍旧是关于sql 固定分组的问题,谢谢!
- sqlsever如何知道有程序连接到数据库?
- 遇到一个非常奇怪的问题,我试图把问题的描述的清楚些,急寻高手帮忙,语句已经写好了,需要指点一下
- 数据库还原问题,急!!!
- Microsoft sql server2000中文版标准教程/李调阳
- ODBC SQL Server DNS设置时,为什么选择用户输入登录ID总是链接不上数据库?
- 一次插入多行数据
- 怎么写这个sql语句?
- 查询出存储过程内循环(循环24小时)的数据
- sql中计算两个日期型字段的时间间隔(分钟)出现问题,请高手指点。。
- 请问? SQL 语句 , 移动加权求成本
- sos:求助,一条SQL语句(一个表的字段内容,另一个表的字段内容的一部分如何连接?)
=SUMPRODUCT(($A$2:$A$10=A2)*($B$2:$B$10=-B2))就可以筛选出A列重复记录 且 B列互为相反数
但在SQL中就不知所措了
select * from tb where name in
(select Name from tb group by name having sum(Cash) = 0)
insert into tb values('马振远' ,-100.00 )
insert into tb values('马振远' ,100.00 )
insert into tb values('高静' ,150.00 )
insert into tb values('高静' ,-100.00 )
insert into tb values('杨兰' ,400.00 )
insert into tb values('杨兰' ,-400.00 )
insert into tb values('于静波' ,30.00 )
insert into tb values('于静波' ,60.00 )
insert into tb values('王波' ,90.00 )
insert into tb values('张小发' ,-90.00 )
insert into tb values('AAAAAA' ,0 ) --增加的测试数据go--如果不要求是两两相反
select * from tb where name in (select Name from tb group by name having sum(Cash) = 0)
/*
Name Cash
---------- --------------------
马振远 -100.00
马振远 100.00
杨兰 400.00
杨兰 -400.00
AAAAAA .00(所影响的行数为 5 行)
*/--如果要求是两两相反
select * from tb where name in (select Name from tb group by name having sum(Cash) = 0 and count(*) = 2)
/*
Name Cash
---------- --------------------
马振远 -100.00
马振远 100.00
杨兰 400.00
杨兰 -400.00(所影响的行数为 4 行)
*/drop table tb
insert into tb values('马振远' , -100.00 )
insert into tb values('马振远' , 100.00 )
insert into tb values('高静', 150.00 )
insert into tb values('高静', -100.00 )
insert into tb values('杨兰' , 400.00 )
insert into tb values('杨兰' , -400.00 )
insert into tb values('于静波' , 30.00)
insert into tb values('于静波' , 60.00)
insert into tb values('王波' , 90.00)
insert into tb values('张小发' , -90.00)
select * from tb where [name] in (
SELECT [Name]FROM tb group by [name]
having sum(Cash)=.0000)drop table tb