求一条查询sql语句。。。。。。

yinxiaoqi 2010-07-30 08:22:16
这里有2个表
ZC_Admission

ID Adname Adsex
260 a 12
261 b 13
262 c 14
263 d 15


ZC_PaymentForm

ID Admission_ID ptime pcod
1 260 1 2
2 261 2 2
3 261 3 4
4 262 4 5
5 263 4 5

然后我执行这条SQl语句:

select * from(select row_number()over(order by tempColumn)
tempRowNumber,* from(select top 10 tempColumn=0,* from ZC_Admission)t)tt
left join a on ID=a.Admission_ID where tempRowNumber>0
结果是这样的,
ID Adname Adsex ID Admission_ID ptime pcod
260 a 12 1 260 1 2
261 b 13 2 261 2 2
261 b 13 2 261 2 2
262 c 14 4 262 4 5
263 d 15 5 263 4 5


我的意思是现在 ID等于261 的有2条 都查出来了,我想 让ID等于261 的这两条记录 根据ID的大小只显示1条记录,保留ID最大的记录。
...全文
142 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinxiaoqi 2010-07-31
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 zfqcarl 的回复:]
楼主,上边我发的帖子是 相同的记录显示一条
用group by ID的话,是按照ID 相同的显示一条
[/Quote]

呵呵 谢谢你哈,我的问题解决了!
zfqcarl 2010-07-31
  • 打赏
  • 举报
回复
楼主,上边我发的帖子是 相同的记录显示一条
用group by ID的话,是按照ID 相同的显示一条
yinxiaoqi 2010-07-31
  • 打赏
  • 举报
回复
谢谢大家 哈,UP 的OK啦!
panxing1101 2010-07-31
  • 打赏
  • 举报
回复


select distinct * from(select row_number()over(order by tempColumn)tempRowNumber,*
from(select top 10 tempColumn=0,* from ZC_Admission)t)tt
left join ZC_PaymentForm a on ID=a.Admission_ID
AND a.PF_ID IN(SELECT max(PF_ID) FROM ZC_PaymentForm WHERE Admission_ID=a.Admission_ID)
where tempRowNumber>0


zfqcarl 2010-07-31
  • 打赏
  • 举报
回复
楼主,发错位置没关系,你干嘛不用关键字distinct ?
select distinct * from(select row_number()over(order by tempColumn)
tempRowNumber,* from(select top 10 tempColumn=0,* from ZC_Admission)t)tt
left join a on ID=a.Admission_ID where tempRowNumber>0

写错别骂我哈
sweetbbs 2010-07-31
  • 打赏
  • 举报
回复
刚才那个是保留ID最小的记录,保留ID最大的记录用下面的语句
SELECT *
FROM ZC_Admission A
LEFT JOIN ZC_PaymentForm B ON A.ID=B.Admission_ID
AND B.ID IN(SELECT MAX(ID) FROM ZC_PaymentForm WHERE Admission_ID=B.Admission_ID)
sweetbbs 2010-07-31
  • 打赏
  • 举报
回复
if object_id('[ZC_Admission]') is not null drop table [ZC_Admission]
go
create table [ZC_Admission]([ID] int,[Adname] varchar(1),[Adsex] int)
insert [ZC_Admission]
select 260,'a',12 union all
select 261,'b',13 union all
select 262,'c',14 union all
select 263,'d',15
GO
if object_id('[ZC_PaymentForm]') is not null drop table [ZC_PaymentForm]
go
create table [ZC_PaymentForm]([ID] int,[Admission_ID] int,[ptime] int,[pcod] int)
insert [ZC_PaymentForm]
select 1,260,1,2 union all
select 2,261,2,2 union all
select 3,261,3,4 union all
select 4,262,4,5 union all
select 5,263,4,5
GO

SELECT *
FROM ZC_Admission A
LEFT JOIN ZC_PaymentForm B ON A.ID=B.Admission_ID
AND B.ID IN(SELECT MIN(ID) FROM ZC_PaymentForm WHERE Admission_ID=B.Admission_ID)

/**
ID Adname Adsex ID Admission_ID ptime pcod
----------- ------ ----------- ----------- ------------ ----------- -----------
260 a 12 1 260 1 2
261 b 13 2 261 2 2
262 c 14 4 262 4 5
263 d 15 5 263 4 5

(4 行受影响)
**/
mengyi66 2010-07-31
  • 打赏
  • 举报
回复
select * from Admision a,Paymentform p where p.id = (select max(p.id) from Admision a ,Paymentform p where a.id = 261 and a.id = p.Admision_id group by p.id);
bb12152205gg 2010-07-31
  • 打赏
  • 举报
回复
distinct应该可以解决你的问题
bob1314 2010-07-31
  • 打赏
  • 举报
回复
不是有个防重复的关键字么。
tianzezhong 2010-07-31
  • 打赏
  • 举报
回复
用关键字distinct
tanbin_0521 2010-07-30
  • 打赏
  • 举报
回复

select top 1 a.Adname,a.Adsex, b.ID,b.Admission_ID,b.ptime,b.pcod from ZC_Admission a left join ZC_PaymentForm b
on a.ID=b.Admission_ID where a.ID=261 group by b.id;
tanbin_0521 2010-07-30
  • 打赏
  • 举报
回复
select a.Adname,a.Adsex, b.ID,b.Admission_ID,b.ptime,b.pcod from ZC_Admission a left join ZC_PaymentForm b
on a.ID=b.Admission_ID where a.ID=261 and b.ID=(selset max(ID) from ZC_Admission )

更具B表的ID
xk1126 2010-07-30
  • 打赏
  • 举报
回复
261 b 13 2 261 2 2
261 b 13 2 261 2 2
你这两条数据不是一样吗!~~
你是想根据那个id啊
比较不会max(id)啊,不就得到最大个id了吗
yinxiaoqi 2010-07-30
  • 打赏
  • 举报
回复
晕 版主 在吗?我的帖子 发错位置了!晕了!
yinxiaoqi 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 silence_smile 的回复:]
SQL code
group by ID

很久没写sql了。。。错了别骂我。。。
[/Quote]

呵呵 楼上的 说笑了,我也没怎么写了,所以才出来求助啊!
queatin_man 2010-07-30
  • 打赏
  • 举报
回复
select a.adname... b.ptime... from table1 a,table2 b where a.id=261 and b.id=261 group by a.id;
Silence_Smile 2010-07-30
  • 打赏
  • 举报
回复
group by ID

很久没写sql了。。。错了别骂我。。。

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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