用sql语句进行多表连接查询出现重复数据 100
pdtl.PayGUID,
payR.PayAccount,
payR.PayBank,
p.ProjName ,
u.UserName ,
u.WorkNo ,
u.CardNumber ,
u.ContactMobile ,
u.CompanyEmail ,
CAST(ROUND(pdtl.PayPrincipal / 10000.00, 2) AS DECIMAL(18, 2)) AS PayPrincipal ,
'1:' + CAST(pdtl.OrderRate AS VARCHAR(10)) + '倍' AS ConfirmRate ,
CAST(ROUND(( pdtl.PayPrincipal)
/ 10000.00, 2) AS DECIMAL(18, 2))* (pdtl.OrderRate+1) AS AmountTotal
from gt_PayDtl pdtl
INNER JOIN dbo.gt_Pay pay ON pdtl.PayGUID = pay.PayGUID
INNER JOIN dbo.p_Project p ON pay.ProjGUID = p.p_projectId
INNER JOIN dbo.gt_User u ON pdtl.UserGUID = u.UserGUID
left join dbo.gt_PayRecord payR on payR.PayGUID=pdtl.PayGUID
where pdtl.PayPrincipal>0
我一inner join dbo.gt_PayRecord payR on payR.PayGUID=pdtl.PayGUID 就出现几万行数据,该怎么改呢? 展开
1、在电脑上打开要去掉重复数据的数据库,这里新建一张含有重复数据的user表。
2、输入“select * from user where name in (select name from user group by name having count(name) > 1) ”sql语句,点击运行可以看到查询出了数据库中user表的重复数据。
3、通过“delete from user where name in (select name from user group by name having count(name) > 1) ”sql语句删除姓名重复的数据。
4、也可以通过“select distinct name from user”sql语句来去掉重复数据,这里去掉了张三的重复数据。
5、通过“select distinct class from user”sql语句来去掉班级相同的重复数据。
1、用select语句,查看两个表中的数据,确认下来的结果是每个表中都只有两行数据;
2、尝试着用最常用的两表结合查询方式来看看结果----结果重复出现,并且结果错误:select a.pono,a.p_name,a.p_kg as 系统重量,b.p_kg as 实际重量 from test1 a,test2 b where a.pono=b.sono;
3、执行完整代码,可以得出结果,select isnull(a.pono,b.sono) as pono,isnull(a.p_name,b.p_name) as p_name, a.p_kg as 系统重量、 b.p_kg as 实际重量、 from test1 as a 、full join test2 as b on a.pono = b.sono、and a.p_name = b.p_name。
where pdtl.PayPrincipal>0应该是where后这个条件不够严禁
看下面截图
pdtl.PayGUID这个字段重复,但是这是一个1对多的数据