标题:查找最新单价
只看楼主
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
结帖率:100%
已结贴  问题点数:15 回复次数:15 
查找最新单价
select distinc pn,MAX(date) ,price from po a where not exists(select * from po b where b.pn =a.pn and b.date<MAX(a.date) )
select DISTINCT pn,MAX(date)as date,price FROM po WHERE price >0GROUP BY 1,3

需要一行代码能直接找出全部料号的最新价格,如果最新的日期相同,那么取最大的那个价格。
自己尝试了多次均不能达到满意效果,请帮忙,谢谢。
po表结构如下:
pn    max_date    price
A01.34.000640    2007-5-23    1006.8376
A01.34.0006200    2007-8-10    982.90598
A01.34.0006200    2007-12-17    1138
A01.34.0006200    2008-6-4    1094.23
A01.34.0006200    2008-7-2    1094.2308
A01.34.000640    2008-12-22    1121.1538
A01.34.000640    2009-1-9    1121.068
A01.34.000640    2009-5-22    1111.6505
A01.34.000640    2009-12-29    1097.0874
A01.34.000640    2010-4-1    1092.233
A01.34.000640    2011-8-25    1025.641
A01.34.000640    2011-8-25    1019.4175
搜索更多相关主题的帖子: 最大的 price where 
2014-04-01 19:53
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
得分:0 
最大的那个价格 max(price)
2014-04-01 20:05
hyz00001
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:168
专家分:137
注 册:2012-10-5
得分:0 
以下是引用tlliqi在2014-4-1 20:05:15的发言:

最大的那个价格 max(price)

您好,我需要的结果是找到每一颗料的最新价格。
2014-04-01 20:19
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:10 
SELECT pn,max_date,MAX(price) max_price FROM po WHERE max_date in (SELECT MAX(max_date) FROM po) GROUP BY 2,1

[ 本帖最后由 sdta 于 2014-4-1 21:34 编辑 ]

坚守VFP最后的阵地
2014-04-01 21:00
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:5 
回复 4楼 sdta
想起一个古老的命令
sort  on  日期+单价  to  

这样能实现吗?

DO IT YOURSELF !
2014-04-01 21:09
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
sort  on  日期+单价  to T

应该是这样的
sort  on  日期,单价  to T

SORT ON max_date,price TO x
SELECT * FROM x


只是排序,排序后产生一个扩展名为DBF的新表,不能得到最后需要的结果



[ 本帖最后由 sdta 于 2014-4-1 21:35 编辑 ]

坚守VFP最后的阵地
2014-04-01 21:18
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
回复 6楼 sdta
排序后的新表的第一条记录应该符合要求吧

没环境测试

DO IT YOURSELF !
2014-04-01 21:21
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用wp231957在2014-4-1 21:21:16的发言:

排序后的新表的第一条记录应该符合要求吧

没环境测试

上面显示的结果MAX_DATE,PRICE 都是以升序排序

坚守VFP最后的阵地
2014-04-01 21:40
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
sort是可以降序排序
不过也没关系
一个Go Top一个Go BoTT

DO IT YOURSELF !
2014-04-01 21:42
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
不知从谁开始,片面追求一行代码,代码少,并不能说明代码的效率高,如果对VFP SQL-SELECT 命令不熟悉的话,以后的维护是很困难的。

看下这里:https://bbs.bccn.net/thread-429128-3-1.html

坚守VFP最后的阵地
2014-04-01 21:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-429530-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.265819 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved