考考大家,一句高难度的SQL语句!

mybios 2002-08-22 01:24:20
在一个表test中,内容如下
name mydate var1 var2

aaa 2002-1-1 4 7
aaa 2002-1-2 5 6
bbb 2002-1-3 5 8
aaf 2002-1-1 3 9
aaf 2002-1-1 4 4

我需要输入一个变量@name,就如'aaa',然后输出如下结果
aaa 2002-1-2 5 6
即取表中name=@name的记录。然后找出日期最大的那条记录。
这样其实不太难。只是我的要求是只需要执行一个select,不能使用子查询。
而需要使用group by 。inner join之类的语法来完成这句SQL。。。。
嘿嘿。真的有点难度吧?
...全文
69 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lostinet 2002-08-22
  • 打赏
  • 举报
回复
这个应该可以。。

select 'aaa' as name,Convert(date,'2002-1-2),as mydate,5 as var1,6 as var2

lgh21cn 2002-08-22
  • 打赏
  • 举报
回复
不知下面的语句能否实现:
select top 1 *
from test
group by name
order by my_date desc
蓝天 2002-08-22
  • 打赏
  • 举报
回复
用按钮JJ的啊,稍做修改
select abc.*
from abc left join abc t1 on abc.name=t1.name and abc.mydate<t1.mydate and t1.id=abc.id
where t1.name is null

mybios 2002-08-22
  • 打赏
  • 举报
回复
其实是有唯一标识的!否则这个表就是废表啦!大量重复记录!
CREATE TABLE [dbo].[test] (
[id] [int] IDENTITY (1, 1) NOT NULL ,
[name] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[var1] [int] NULL ,
[datetimes] [smalldatetime] NULL
) ON [PRIMARY]
GO

yonghengdizhen 2002-08-22
  • 打赏
  • 举报
回复
若再加上一条
aaf 2002-1-1 4 4
yonghengdizhen 2002-08-22
  • 打赏
  • 举报
回复
这几条中你选哪一条??

aaf 2002-1-1 3 4
aaf 2002-1-1 4 4
aaf 2002-1-1 3 9
aaf 2002-1-1 4 9
yonghengdizhen 2002-08-22
  • 打赏
  • 举报
回复
关键问题是这个表没有一个唯一标识一条记录的(一个或多个)字段.
所以本方程无解
mybios 2002-08-22
  • 打赏
  • 举报
回复
意思是说Name相同的只输出mydate最大的记录。对name分组。就这么简单。
Yang_ 2002-08-22
  • 打赏
  • 举报
回复
这个回复应该解决所有问题:


回复人: icevi(按钮工厂) ( ) 信誉:115 2002-08-22 15:41:00 得分:0


select abc.*
from abc left join abc t1 on abc.name=t1.name and abc.mydate<t1.mydate
where t1.name is null

是要这样的吗?你上面有两个aaf 2002-1-1 是不是搞错了?


supsuccess 2002-08-22
  • 打赏
  • 举报
回复
这样吧,我给你改一下,
即name相同的只输出var1最大的一条记录
看行不行??
select t1.name,t1.mydate,t1.var1,t1.var2
from tab t1 join tab t2 on (t1.name=t2.name)
where t1.var1<=t2.var1
group by t1.name,t1.mydate,t1.var1,t1.var2
having count(*)<=1
order by 3 desc

icevi 2002-08-22
  • 打赏
  • 举报
回复
select abc.*
from abc left join abc t1 on abc.name=t1.name and abc.mydate<t1.mydate
where t1.name is null

是要这样的吗?你上面有两个aaf 2002-1-1 是不是搞错了?
supsuccess 2002-08-22
  • 打赏
  • 举报
回复
即name的只输出mydate最大的一条记录??
==即name相同的只输出mydate最大的一条记录??
那么
aaf 2002-1-1 3 9
aaf 2002-1-1 4 4
怎么办???
yonghengdizhen 2002-08-22
  • 打赏
  • 举报
回复
SELECT MAX(TA.mydate) AS Date ,TB.name,TB.var1,TB.var2 from test as TA inner join test TB
ON TA.Date=TB.ydate
Group BY TA.Name
vbFly 2002-08-22
  • 打赏
  • 举报
回复
不用子查询是不可能的
SELECT *
FROM test a
WHERE ((SELECT COUNT(*)
FROM test b
WHERE b.name = a.name AND b.mydate > a.mydate) < 1)
newly_ignorant 2002-08-22
  • 打赏
  • 举报
回复
说了半天不就是Group的问题吗,想显示不在聚合函数中同时不在Group子句中的字段。
这种情况我都是用上面的方法实现的。
蓝天 2002-08-22
  • 打赏
  • 举报
回复
别笑我,我只会这么做

select * from test inner join (select max(mydate) mydate, name group by name )x on x.name = test.name and x.mydate = test.mydate
蓝天 2002-08-22
  • 打赏
  • 举报
回复
按鈕jj的毫无问题啊!你想要什么?把原题贴出来啊
日总是我哥 2002-08-22
  • 打赏
  • 举报
回复

大家看清楚啊~~
楼主是“考考大家”啊
说明楼主自己知道答案才是呀~~~

快把答案说出来吧~
免得烤焦更多的“虾”呀~~
mybios 2002-08-22
  • 打赏
  • 举报
回复
supsuccess(口气不小) 回答的不错。不过你还是使用了两个select
我需要的是使用from test l join test r之类的自联接语句。。。。真的高难度到没人能回答吗?
N_chow 2002-08-22
  • 打赏
  • 举报
回复
不會吧,看清了,按鈕jj的不可以嗎
加载更多回复(11)
【更新至2025年】2001-2025年上市公司数字化转型年报词频统计(吴非、赵宸宇、甄红线)(300+年报词频统计) 1、时间:2001-2025年 2、来源:上市公司年报 3、参考文献:企业数字化转型与资本市场表现——来自股票流动性的经验证据(吴非) 数字化转型如何影响企业全要素生产率(赵宸宇) 知识产权行政保护与企业数字化转型(甄红线) 4、方法说明:(1)参考吴非老师的做法,对人工智能技术、大数据技术、云计算技术、区块链技术、数字技术运用五个维度76个数字化相关词频进行统计 (2)参考赵宸宇老师的做法,对数字技术应用、互联网商业模式、智能制造、现代信息系统四个维度99个数字化相关词频进行统计 (3)参考甄红线老师的做法,对技术分类、组织赋能、数字化应用等类别下139个数字化相关词频进行统计 5、指标:年份、股票代码、公司简称、行业名称、行业代码、全文-文本总长度、仅中英文-文本总长度、人工智能技术-吴、大数据技术-吴、云计算技术-吴、区块链技术-吴、数字技术运用-吴、数字技术应用-赵、互联网商业模式-赵、智能制造-赵、现代信息系统-赵、技术分类-人工智能技术-甄、技术分类-区块链技术-甄、技术分类-云计算技术-甄、技术分类-大数据技术-甄、组织赋能-人工智能技术-甄、组织赋能-云计算技术-甄、组织赋能-大数据技术-甄、组织赋能-广义数字技术-甄、数字化应用-技术创新-甄、数字化应用-流程创新-甄、数字化应用-业务创新-甄、人工智能、商业智能、图像理解、投资决策辅助系统、智能数据分析、智能机器人、机器学习、深度学习、语义搜索、生物识别技术、人脸识别、语音识别、身份验证、自动驾驶、自然语言处理、大数据、数据挖掘、文本挖掘、数据可视化、异构数据、征信、增强现实、混合现实、虚拟现实、云计算、流计算、图计算、内存计算、多方安全计算、类脑计算、绿色计算、认知计算等300+词频

34,876

社区成员

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

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