sql根据某一个字段sql查询重复字段只取第一条数据

查看: 9028|回复: 3
请问,如何从SQL查询结果中取第一条满足条件记录对应的其他字段
阅读权限20
在线时间 小时
如题,想筛选出不重复记录(按多条件),并取满足条件记录对应的其他字段值.代码我写了一部份,剩下的请朋友帮我补完,谢谢.
想要得到的效果请看附件的表2.
(13.85 KB, 下载次数: 38)
21:39 上传
点击文件名下载附件
阅读权限95
在线时间 小时
修改sql语句:
Set rs = cn.Execute(&select format(日期,'yyyy-m-d'),供应商,商品名,单价 FROM (select distinct 日期,供应商,商品名,单价,日期 & 供应商 & 商品名 & 单价 from [excel表$]) order by 日期&)
复制代码'Sheets(2).Columns(1).NumberFormatLocal = &yyyy-m-d&&&这句可以刪除,已在sql里format日期格式。
阅读权限20
在线时间 小时
mineshine 发表于
修改sql语句:'Sheets(2).Columns(1).NumberFormatLocal = &yyyy-m-d&&&这句可以刪除,已在sql里format日期格 ...
感谢回复,但我要的是结果是:
查看商品价格的变动,并能知道是什么时候变动的.所以,重复相同的价格就不要显示出来.
所要达到的效果就是&工作表2&的结果,希望哪位高手能帮忙一下.谢谢.
阅读权限20
在线时间 小时
有点失望,在这里很难能够求得答案,还是靠自己摸索,答案如下:
select format(日期,'yyyy-m-d'),供应商,商品名,单价 from [Excel表$] A WHERE 日期 IN (SELECT TOP 1 日期 FROM [Excel表$] B WHERE A.供应商&A.商品名&A.单价=B.供应商&B.商品名&B.单价)&
相信不是最优代码,但能出结果:
& & & & 刘伟& & & & 保险粉& & & & 5.2
& & & & 刘伟& & & & 保险粉& & & & 5.5
& & & & 林文忠& & & & 保险粉& & & & 6.5
& & & & 林文忠& & & & 保险粉& & & & 7.3
& & & & 刘伟& & & & 保险粉& & & & 9.5
& & & & 刘伟& & & & 保险粉& & & & 9.7
& & & & 闰土& & & & 保险粉& & & & 7
& & & & 立信& & & & 保险粉& & & & 9.9
& & & & 立信& & & & 保险粉& & & & 9.9
& & & & 闰土& & & & 活性红& & & & 18
& & & & 闰土& & & & 活性红& & & & 19
& & & & 闰土& & & & 活性红& & & & 20
& & & & 闰土& & & & 活性红& & & & 21
& & & & 永昌& & & & 活性红& & & & 19
最新热点 /1
ExcelHome每周都有线上直播公开课,
国内一流讲师真身分享,高手贴身答疑,
赶不上直播还能看录像,
关键居然是免费的!
厚木哥们都已经这么努力了,
你还好意思说学不好Office。
玩命加载中,请稍候
玩命加载中,请稍候
Powered by
本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任! & & 本站特聘法律顾问:徐怀玉律师 李志群律师> 问题详情
已知表 T1 中 A 字段含有重复的数据(A 字段非空),请在空白处完成 SQL 语句,其中第一条语句查询
悬赏:0&答案豆
提问人:匿名网友
发布时间:
已知表 T1 中 A 字段含有重复的数据(A 字段非空),请在空白处完成 SQL 语句,其中第一条语句查询T1标准的记录总数,第二条语句查询T1 标准A字段不重复记录总数请帮忙给出正确答案和分析,谢谢!
为您推荐的考试题库
您可能感兴趣的试题
11、 Oracle数据库中, 如何增加表空间userdata的大小,请写出具体数据库语句? (以windows操作系统为例说明)22、 简要叙述TRUNCATE, DROP, DELETE之间的关系。
我有更好的答案
相关考试课程
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
找答案会员
享三项特权
找答案会员
享三项特权
找答案会员
享三项特权
选择支付方式:
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
常用邮箱:
用于找回密码
确认密码:2008年4月 PowerBuilder大版内专家分月排行榜第二2007年1月 PowerBuilder大版内专家分月排行榜第二2007年7月 扩充话题大版内专家分月排行榜第二2006年12月 PowerBuilder大版内专家分月排行榜第二
2008年4月 PowerBuilder大版内专家分月排行榜第二2007年1月 PowerBuilder大版内专家分月排行榜第二2007年7月 扩充话题大版内专家分月排行榜第二2006年12月 PowerBuilder大版内专家分月排行榜第二
2008年2月 MS-SQL Server大版内专家分月排行榜第二2007年7月 MS-SQL Server大版内专家分月排行榜第二2002年3月 MS-SQL Server大版内专家分月排行榜第二2002年1月 MS-SQL Server大版内专家分月排行榜第二2001年12月 MS-SQL Server大版内专家分月排行榜第二
2013年2月 MS-SQL Server大版内专家分月排行榜第三
2008年4月 PowerBuilder大版内专家分月排行榜第二2007年1月 PowerBuilder大版内专家分月排行榜第二2007年7月 扩充话题大版内专家分月排行榜第二2006年12月 PowerBuilder大版内专家分月排行榜第二
2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
2008年 总版技术专家分年内排行榜第二
2010年 总版技术专家分年内排行榜第四2009年 总版技术专家分年内排行榜第五2007年 总版技术专家分年内排行榜第六
本帖子已过去太久远了,不再提供回复功能。sql一个字段相同情况下,取另一个字段最大的记录
sql (同一
表&reginfo&(id(主键),&regno,&adddate)
期待结果:(每个regno只取一条记录,addate最大的那条)
-----------------------------------
--按某一字段分组取最大(小)值所在行的数据
(爱新觉罗.毓华&于浙江杭州)
--创建表并插入数据:
create&table&tb(name&varchar(10),val&int,memo&varchar(20))
insert&into&tb&values('a',&&&&2,&&&'a2(a的第二个值)')
insert&into&tb&values('a',&&&&1,&&&'a1--a的第一个值')
insert&into&tb&values('a',&&&&3,&&&'a3:a的第三个值')
insert&into&tb&values('b',&&&&1,&&&'b1--b的第一个值')
insert&into&tb&values('b',&&&&3,&&&'b3:b的第三个值')
insert&into&tb&values('b',&&&&2,&&&'b2b2b2b2')
insert&into&tb&values('b',&&&&4,&&&'b4b4')
insert&into&tb&values('b',&&&&5,&&&'b5b5b5b5b5')
--一、按name分组取val最大的值所在行的数据。
--方法1:这种方法最简单
select&a.*&from&tb&a&where&val&=&(select&max(val)&from&tb&where&name&=&a.name)&order&by&a.name
select&a.*&from&tb&a&where&not&exists(select&1&from&tb&where&name&=&a.name&and&val&&&a.val)
select&a.*&from&tb&a,(select&name,max(val)&val&from&tb&group&by&name)&b&where&a.name&=&b.name&and&a.val&=&b.val&order&by&a.name
--方法4:个人习惯这种
select&a.*&from&tb&a&inner&join&(select&name&,&max(val)&val&from&tb&group&by&name)&b&on&a.name&=&b.name&and&a.val&=&b.val&order&by&a.name
金蝶软件实际应用举例:
---判断客户购买频率的脚本(主要通过销售发票主表来处理)
---查询相同名称的客户,最早(最小)的那个开票的日期 select distinct
FCustID As 客户内码_A01 ,FDate As 最早_销售日期 from
ICSale inner join ( select FCustID As 客户内码_A01 ,min(FDate) As 发票日期
from ICSale group by FCustID ) AS B on ICSale.FCustID = B.客户内码_A01
and ICSale.FDate = B.发票日期 order by ICSale.FCustID
-------------------- ---查询相同名称的客户,最晚(最大)的那个开票的日期 select distinct
FCustID As 客户内码_A01 ,FDate As 最晚_销售日期 from
ICSale inner join ( select FCustID As 客户内码_A01 ,max(FDate) As 发票日期
from ICSale group by FCustID ) AS B on ICSale.FCustID = B.客户内码_A01
and ICSale.FDate = B.发票日期 order by ICSale.FCustID
-------------------- ---查询相同名称的客户,在单据主表中出现的次数(可作为购买次数的依据)
select FCustID As 客户内码_A01 ,count(FCustID) As
销售次数 ,sum(FInvoiceAmount) as 金额合计 from ICSale group by FCustID
order by FCustID
select&a.*&from&tb&a&where&1&&&(select&count(*)&from&tb&where&name&=&a.name&and&val&&&a.val&)&order&by&a.name
--------------------------------
用友数据分析
更多数据分析模型,欢迎扫描"微信公众号"
或者查找微信公众号:"DF数据工厂" &或
段同情况下,取另一个字段最大的所有记录)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 sql语句找出重复字段 的文章

 

随机推荐