sql查询

qq_29301431 2016-05-13 12:58:49

有这样的两张表,求出csp的最大值 gruod by id ,并显示对应的卡号,姓名,电话,及csp
...全文
216 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2016-05-13
  • 打赏
  • 举报
回复
倒是没注意看数据,解决了就好。 按照楼上sum一下
BitCoffee 2016-05-13
  • 打赏
  • 举报
回复

-- 上面的表为table1,下面的表为table2
select top 1 t2.idcardnumber,t2.name,t2.mobile,t1.csp from table2 t2 left join (select id,csp = sum(csp) from table1 group by id) t1 on t2.id = t1.id order by t1.csp desc
qq_29301431 2016-05-13
  • 打赏
  • 举报
回复
引用 15 楼 xdashewan 的回复:

select top 1 * from (select id, sum(csp) as csp from table1 group by id)表1 join 表2 on 表1.id=表2.id order by 表1.csp desc
太感谢了,大神
xdashewan 2016-05-13
  • 打赏
  • 举报
回复

select top 1 * from (select id, sum(csp) as csp from table1 group by id)表1 join 表2 on 表1.id=表2.id order by 表1.csp desc
qq_29301431 2016-05-13
  • 打赏
  • 举报
回复
引用 13 楼 xdashewan 的回复:
[quote=引用 12 楼 qq_29301431 的回复:] 有错误,id相同的有三个,最大值应该是400,没有把id相同的加起来
加起来?你没说要加起来啊,你把你要的数据举例列出来,说明下取得规则[/quote] 取最大值,有id相同的是多次记录啊,肯定要加起来 就是求csp,id相同的加起来,然后求出最大的csp,并根据最大csp对应的id,求另一个表中id相同的name,moblie这些信息
xdashewan 2016-05-13
  • 打赏
  • 举报
回复
引用 12 楼 qq_29301431 的回复:
有错误,id相同的有三个,最大值应该是400,没有把id相同的加起来
加起来?你没说要加起来啊,你把你要的数据举例列出来,说明下取得规则
qq_29301431 2016-05-13
  • 打赏
  • 举报
回复
引用 11 楼 xdashewan 的回复:
[quote=引用 9 楼 qq_29301431 的回复:] 只是算出所有csp中的最大值,因为有id相同的,然后求出最大的csp,与对应id的另一张表的信息
那1楼的sql没错,直接用[/quote] 有错误,id相同的有三个,最大值应该是400,没有把id相同的加起来
qq_29301431 2016-05-13
  • 打赏
  • 举报
回复
引用 6 楼 xdashewan 的回复:

select t1.id, t1.csp, t2.卡号, t2.姓名, t2.电话
from (select id, max(csp) as csp from table1 group by id) t1 left join table2 t2 on t2.id = t1.id
只是算出所有csp中的最大值,因为有id相同的,然后求出最大的csp,与对应id的另一张表的信息
xdashewan 2016-05-13
  • 打赏
  • 举报
回复
引用 9 楼 qq_29301431 的回复:
只是算出所有csp中的最大值,因为有id相同的,然后求出最大的csp,与对应id的另一张表的信息
那1楼的sql没错,直接用
qq_29301431 2016-05-13
  • 打赏
  • 举报
回复
引用 7 楼 BitCoffee 的回复:

-- 上面的表为table1,下面的表为table2
select t2.idcardnumber,t2.name,t2.mobile,t1.csp from table2 t2 left join (select id,csp = max(csp) from table1 group by id) t1 on t2.id = t1.id
最大值,不是分组求,求分组中的最大值
BitCoffee 2016-05-13
  • 打赏
  • 举报
回复
这个应该是要以table2为主表左联的。
BitCoffee 2016-05-13
  • 打赏
  • 举报
回复

-- 上面的表为table1,下面的表为table2
select t2.idcardnumber,t2.name,t2.mobile,t1.csp from table2 t2 left join (select id,csp = max(csp) from table1 group by id) t1 on t2.id = t1.id
xdashewan 2016-05-13
  • 打赏
  • 举报
回复

select t1.id, t1.csp, t2.卡号, t2.姓名, t2.电话
from (select id, max(csp) as csp from table1 group by id) t1 left join table2 t2 on t2.id = t1.id
xdashewan 2016-05-13
  • 打赏
  • 举报
回复
引用 3 楼 qq_29301431 的回复:
[quote=引用 2 楼 hanjun0612 的回复:] 就求一个最大csp。为何还要分组group by?
问题是有 id相同的csp,还有是分别求出id,name,电话,再把这些值付给textbox里面,大神求教[/quote] 你把想要结果集大致写下
qq_29301431 2016-05-13
  • 打赏
  • 举报
回复
引用 4 楼 xdashewan 的回复:
[quote=引用 3 楼 qq_29301431 的回复:] [quote=引用 2 楼 hanjun0612 的回复:] 就求一个最大csp。为何还要分组group by?
问题是有 id相同的csp,还有是分别求出id,name,电话,再把这些值付给textbox里面,大神求教[/quote] 你把想要结果集大致写下[/quote] id ,name,moblie,csp(csp是max),最好分别求出一列一列的,因为要把值传到textbox里面
qq_29301431 2016-05-13
  • 打赏
  • 举报
回复
引用 2 楼 hanjun0612 的回复:
就求一个最大csp。为何还要分组group by?
问题是有 id相同的csp,还有是分别求出id,name,电话,再把这些值付给textbox里面,大神求教
正怒月神 2016-05-13
  • 打赏
  • 举报
回复
select top 1 * from 表1 join 表2 on 表1.id=表2.id order by 表1.csp desc
正怒月神 2016-05-13
  • 打赏
  • 举报
回复
就求一个最大csp。为何还要分组group by?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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