当前位置:编程学习 > C#/ASP.NET >>

咨询一个关于TSQL里面DISTINCT的问题

    小弟我最近碰到一个问题 在SQLSERVER2005里面使用DISTINCT 时 发现只能去掉某一列的重复 我想提取去掉重复的那一列后的其他列的相关信息怎么办啊?
    如下表:
    姓名              账号              金额
    张三            60535000             50
    王五            60535001             50
    李四            60535000             100.00
用select distinct 账号 FROM  table
只能有
                     账号、
                    60535000
                    60535001
如果我现在想在这个基础上得到
     姓名              账号                    金额
     张三               60535000              50.00
     王五               60535001              50.00
或者
        姓名              账号                    金额
        王五               60535001              50.00
        李四               60535000             100.00
也行。
用什么T --SQL   很急  等待  因为我有10万行记录要处理。。。。
谢谢了!
--------------------编程问答-------------------- select * from table where 账号 in (select distinct 账号 FROM table) --------------------编程问答-------------------- http://msdn.microsoft.com/zh-cn/library/ms146033.aspx --------------------编程问答-------------------- select Min(姓名), 账号, min(金额) from table group by 账号;
select Max(姓名), 账号, max(金额) from table group by 账号;

当账号重复,其它项不重复的时候,你要决定其它项怎么选择 --------------------编程问答-------------------- 比较简单的写法是
SELECT MAX(姓名),帐号,MAX(金额) FROM Table GROUP BY 帐号
但结果里面的张三对应金额是100.00,
如果这不接受的话就复杂些了

这里还分两种情况:
1.table里面的姓名如果不会重复

select A.姓名,A.帐号,A.金额 from table A.INNER JOIN
(SELECT MAX(姓名) AS Name,帐号 FROM Table GROUP BY 帐号) B 
ON A.姓名=B.Name AND A.帐号=B.帐号


2.连姓名都会重复

select A.姓名,A.帐号,MAX(A.金额) from table A.INNER JOIN
(SELECT MAX(姓名) AS Name,帐号 FROM Table GROUP BY 帐号) B 
ON A.姓名=B.Name AND A.帐号=B.帐号
GROUP BY A.姓名,A.帐号

--------------------编程问答-------------------- SQL 问题 有SQL专区. --------------------编程问答-------------------- 4楼 正解 --------------------编程问答--------------------
引用 4 楼 chensxn 的回复:
比较简单的写法是
SELECT MAX(姓名),帐号,MAX(金额) FROM Table GROUP BY 帐号
但结果里面的张三对应金额是100.00,
如果这不接受的话就复杂些了

这里还分两种情况:
1.table里面的姓名如果不会重复

SQL code

select A.姓名,A.帐号,A.金额 from table A.INNER JOIN
(SELECT M……


mark
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,