IBM大型机论坛索引
 
 登录
 
IBM大型机论坛索引 大型机:搜索 IBM Mainframe论坛:常见问题解答  寄存器
 

需要SQL用于列中具有ABC值的两个最新记录


IBM大型机论坛 -> DB2
发表新话题   回复主题
查看上一个主题 :: 查看下一个主题  
作者 信息
Q5P418

新的用户


加入:2020年5月10日
帖子:7
地点:美国

 发布 发表于:2020年5月10日,星期日8:24
引用回复

我有一个DB2表,其中的列(A)之一为ABC或XYZ。

我需要基于col C日期的最新两个记录的值A = 美国广播公司的输出。

样品表

A B C
美国广播公司约翰8/8/2019
美国广播公司约翰8/1/2019
XYZ约翰7/1/2019
美国广播公司玛丽10/11/2019
XYZ玛丽10/1/2019
美国广播公司保罗6/6/2019
美国广播公司保罗6/20/2019
码:

  A            B                 C
美国广播公司          John              8/8/2019
美国广播公司          John              8/1/2019
XYZ          John              7/1/2019
美国广播公司          Mary            10/11/2019
XYZ          Mary             10/1/2019
美国广播公司          Paul              6/6/2019
美国广播公司          Paul             6/20/2019

在此示例表中,我的输出将是John和Paul记录
回到顶部
查看用户资料 发送私信
尼克·克劳斯顿

全球主持人


加入时间:2007年5月10日
帖子:2455
地点:英国汉普郡

 发布 发表于:2020年5月10日,星期日3:08 pm
引用回复

发布数据时,请使用代码标签(可使用完整的编辑器使用)。这次,我为您完成了此操作,将未标记的数据保留在原处,以便您可以看到不同之处。

请显示您尝试过的SQL。
回到顶部
查看用户资料 发送私信
Q5P418

新的用户


加入:2020年5月10日
帖子:7
地点:美国

 发布 发表:2020年5月10日星期日5:57 pm
引用回复

到目前为止,我已经尝试使用以下SQL:

选择B,C
从表
在哪里='ABC'
AND B IN('John','Paul',......'Mary')
B组
按C DESC排序
仅获取前2行

请注意-我需要处理B列中大约500条记录。
回到顶部
查看用户资料 发送私信
谢尔盖肯

活跃的成员


已加入:2008年4月29日
帖子:940
所在地:马里兰

 发布 发表于:2020年5月10日,星期日6:23 pm
引用回复

Q5P418写道:
到目前为止,我已经尝试使用以下SQL:

选择B,C
从表
在哪里='ABC'
AND B IN('John','Paul',......'Mary')
B组
按C DESC排序
仅获取前2行

请注意-我需要处理B列中大约500条记录。

1)您听说过代码标签吗?
2)你怎么了? (除了您有义务完成自己的任务吗?)
回到顶部
查看用户资料 发送私信
Q5P418

新的用户


加入:2020年5月10日
帖子:7
地点:美国

 发布 发表于:2020年5月10日,星期日6:51 pm
引用回复

到目前为止,我已经尝试使用以下SQL:

码:
选择B,C
从表
在哪里='ABC'
AND B IN('约翰','保罗',......'玛丽')
B组
按C DESC排序
仅获取前2行


请注意-我需要处理B列中大约500条记录。
回到顶部
查看用户资料 发送私信
谢尔盖肯

活跃的成员


已加入:2008年4月29日
帖子:940
所在地:马里兰

 发布 发表于:2020年5月10日,星期日7:19 pm
引用回复

你到底是什么问题?
不是您的任务,而是您面临的问题是什么?
回到顶部
查看用户资料 发送私信
尼克·克劳斯顿

全球主持人


加入时间:2007年5月10日
帖子:2455
地点:英国汉普郡

 发布 发表:2020年5月10日星期日8:19 pm
引用回复

我不明白你为什么
码:
AND B IN(...)

这是要达到什么目的?
您的日期格式不适合排序-您应该使用ccyymmdd格式,或者至少使日期具有相同的长度,因此1/1/2019应该为01/01/2019。
回到顶部
查看用户资料 发送私信
罗希特·乌马尔吉卡(Rohit Umarjikar)

全球主持人


已加入:2010年9月21日
帖子:2582
地点:美国纽约

 发布 发表:2020年5月11日星期一8:02上午
引用回复

码:
选择temp1.A,temp1.B,temp1.C

(
选择A,B,C
从表
在哪里='ABC'
)  temp1
按temp1.c DESC排序
仅获取前2行
回到顶部
查看用户资料 发送私信
Q5P418

新的用户


加入:2020年5月10日
帖子:7
地点:美国

 发布 发表:2020年5月11日星期一6:55 pm
引用回复

罗希特

感谢您的答复!

我必须在B列中处理大约500条记录。

因此,最后一条语句将无法正常工作,因为我希望输出超过2条记录。
回到顶部
查看用户资料 发送私信
谢尔盖肯

活跃的成员


已加入:2008年4月29日
帖子:940
所在地:马里兰

 发布 发表:2020年5月11日星期一7:49 pm
引用回复

Q5P418写道:
罗希特

感谢您的答复!

我必须在B列中处理大约500条记录。

因此,最后一条语句将无法正常工作,因为我希望输出超过2条记录。

您如何想象“一列500条记录”? 12.gif
回到顶部
查看用户资料 发送私信
罗希特·乌马尔吉卡(Rohit Umarjikar)

全球主持人


已加入:2010年9月21日
帖子:2582
地点:美国纽约

 发布 发表:星期二2020年5月12日上午12:06
引用回复

Q5P418写道:
罗希特

感谢您的答复!

我必须在B列中处理大约500条记录。

因此,最后一条语句将无法正常工作,因为我希望输出超过2条记录。
重新阅读您的原始帖子。您提到了当A ='ABC'时需要最新的前两行(基于col C),因此此查询将根据需要工作,并且无论其500还是5M都不重要。它应该工作。
如果您更改了要求,请原样发布。

以下查询将处理每行重复项。
码:
选择temp1.A,temp1.B,temp1.C

(
选择区域A,B,C
从表
在哪里='ABC'
)  temp1
按temp1.c DESC排序
仅获取前2行
回到顶部
查看用户资料 发送私信
查看上一个主题 :: :: 查看下一个主题  
发表新话题   回复主题 查看书签
所有时间均为格林尼治标准时间+ 6小时
论坛索引 -> DB2

 


类似主题
话题 论坛 回覆
 没有新帖 选择多个常量记录 DB2 3
该主题已锁定:您无法编辑帖子或回复。 将匹配的记录写入输出文件 DFSORT / ICETOOL 11
 没有新帖 SYSIBM表中的列名 DB2 5
 没有新帖 合并两个以上的记录 DFSORT / ICETOOL 15
 没有新帖 匹配和不匹配记录使用 DFSORT / ICETOOL 11
搜索我们的论坛:


 回到顶部