求解:实现这样的功能的语句要如何写?

kylike 2005-05-24 10:56:09
我有表数据如下:

DepID Badge Name xPay
--------------------------------
A001 10618 张XX 4506.05
A001 10621 李XX 3502.70
A004 10619 雷XX 3637.53
A004 10001 林XX 2164.24
A004 10620 高XX 3567.55


现要得出下面的结果:

DepID Badge Name xPay
--------------------------------
A001 10618 张XX 4506.05
10621 李XX 3502.70
A004 10619 雷XX 3637.53
10001 林XX 2164.24
10620 高XX 3567.55

那样的语句怎样写呢?最好是视图或一条语句求出来。
...全文
96 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
paoluo 2005-05-24
  • 打赏
  • 举报
回复
呵,不好意思,写错了一点.
yzrterry 2005-05-24
  • 打赏
  • 举报
回复
paoluo(一天到晚游泳的鱼) ,meiqingsong(阿飛) 说得完全正确...
paoluo(一天到晚游泳的鱼) 说的改一下这样就行: Select
(Case When Exists(Select * from TableName Where DepID=A.DepID And Badge<A.Badge) Then '' Else DepID End ) As DepID,
Badge,
Name,
xPay
from TableName A
chenqianlong 2005-05-24
  • 打赏
  • 举报
回复
向上
kylike 2005-05-24
  • 打赏
  • 举报
回复
非常谢谢各位! 问题已得到很好的解决。结帐了
yzrterry 2005-05-24
  • 打赏
  • 举报
回复
Select
(Case When Exists(Select * from TableName Where DepID=A.DepID And Badge<>A.Badge) Then '' Else DepIDEnd )As DepID,
Badge,
Name,
xPay
from TableName A
梅青松 2005-05-24
  • 打赏
  • 举报
回复
--建立测试环境
Create Table 表(DepID varchar(10),Badge varchar(10),Name varchar(10),xPay varchar(10))
--插入数据
insert into 表
select 'A001','10618','张XX','4506.05' union
select 'A001','10621','李XX','3502.70' union
select 'A004','10619','雷XX','3637.53' union
select 'A004','10001','林XX','2164.24' union
select 'A004','10620','高XX','3567.55'
select * from 表
--测试语句
select
DepID = case when badge =(select min(Badge) from 表 where DepID = a.DepID) then DepID else '' end,
name, xPay
from 表 a

--删除测试环境
Drop Table 表

--结果
A001 张XX 4506.05
李XX 3502.70
A004 林XX 2164.24
雷XX 3637.53
高XX 3567.55
paoluo 2005-05-24
  • 打赏
  • 举报
回复
可以实现,但数据太多了的话,效率就差了.
paoluo 2005-05-24
  • 打赏
  • 举报
回复

Select
(Case When Exists(Select * from TableName Where DepID=A.DepID And Badge<A.Badge) Then '' Else Badge End )As Badge,
Badge,
Name,
xPay
from TableName A
ziping 2005-05-24
  • 打赏
  • 举报
回复
用case吧是可以实现的,不过不建议这样数据多的话,影响数据库性能
klan 2005-05-24
  • 打赏
  • 举报
回复
这个我看还是到前台程序上做吧。数据库的主要功能不是用于排版的。

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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