以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于SQL语句的请教  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=121556)

--  作者:ap9709130
--  发布时间:2018/7/9 14:28:00
--  关于SQL语句的请教
老师,
我的表结构如下:

CID     日期            姓名
123     1/1/2017     张三
123     1/10/2017   李四
123     2/1/2017     王五
123     5/1/2017     张三

我想得到的结果是:    CID         日期1             日期2
                           123      5/1/2017      2/1/2017

要怎么样写SQL 语句才能得到这个结果?

我目前的水平这样写,可以得到三个, S elect CID,Max(日期) as 日期1 from {表 } where 姓名 = \'张三\' Group By CID .可是 怎么才能得到日期2 ? 多谢!

--  作者:fox-man
--  发布时间:2018/7/9 14:49:00
--  
交叉汇总可以解决啊.
--  作者:ap9709130
--  发布时间:2018/7/9 15:50:00
--  
我想要的是SQL语句.多谢!
--  作者:有点甜
--  发布时间:2018/7/9 16:18:00
--  

必须使用代码合成sql语句,无法直接写sql语句得到的

 

http://www.foxtable.com/webhelp/scr/2965.htm

 

类似交叉统计的代码

 

http://www.foxtable.com/webhelp/scr/0165.htm

 


--  作者:ap9709130
--  发布时间:2018/7/9 16:31:00
--  
有点甜老师

我看了例子,和我的不一样. 我要是求出想要的数据的第二大的日期,和例子不是一回事,例子我基本看懂了.能帮我写一下吗? 多谢!

--  作者:有点甜
--  发布时间:2018/7/9 17:08:00
--  

如果是sqlserver数据库,参考

 

https://www.cnblogs.com/0201zcr/p/4820706.html

 


--  作者:ap9709130
--  发布时间:2018/7/12 16:04:00
--  
老师

研究了你发给我的资料,还是没能做出来.能帮我上面那个例子,写一下吗?多谢!

--  作者:ap9709130
--  发布时间:2018/7/12 16:05:00
--  
这个和我的列子还是有区别的.多谢!
[此贴子已经被作者于2018/7/12 16:05:48编辑过]

--  作者:有点甜
--  发布时间:2018/7/12 16:48:00
--  

获取第二大的日期

 

select 第一列, MAX(第五列) from {表A} where 第五列 < (select MAX(第五列) from {表A} ) group by 第一列

 

第一、第二的日期,一起,这样写

 

select 第一列, 日期1, (select max(第五列) from {表A} as b where a.第一列=b.第一列 and 第五列<a.日期1) as 日期2 from (select 第一列,max(第五列) as 日期1 from {表A} group by 第一列) as a

 

认认真真看懂 https://www.cnblogs.com/0201zcr/p/4820706.html

 


--  作者:ap9709130
--  发布时间:2018/7/12 18:37:00
--  
多谢甜老师.我终于搞懂了!