求同一商品不同代理在相同条件下的最新价

先前实现过的,还记录了Blog.不过这次有点不一样,记录一下。感谢fredrickhu

求同一商品不同代理在相同条件下的最新价 ,如题


表:

商品代号    代理号      型号      代理价    生效日

1001      A01          H042        3.80      2009-11-12

1002      B37          H042        5.80      2009-11-13

1001      B01          H052        5.80      2009-11-10

1003      B48          H032        3.8        2009-11-17

1002      B37          H042        6.87      2009-10-15


要获取如下结果

1001      A01          H052        3.80      2009-11-12

1002      B37          H042        5.80      2009-11-13


我不知是想混淆了还是怎样,很早前做过一次这样的,可是现在感觉不对,我当初是这样做的

相同记录行如何取最大值
http://www.dezai.cn/blog/article.asp?id=201

但现在是同一商品不同代理在相同条件下的最新价,好像这样是取不到的,请教大家如何实现,谢谢。



solution:

----------------------------------------------------------------
-- Author  :fredrickhu(小F,向高手学习)
-- Date    :2009-11-17 23:00:18
-- Version:
--      Microsoft SQL Server 2005 - 9.00.4035.00 (Intel X86)
--    Nov 24 2008 13:01:59
--    Copyright (c) 1988-2005 Microsoft Corporation
--    Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
--
----------------------------------------------------------------
--> 测试数据:[tb]
if object_id('[tb]') is not null drop table [tb]
go
create table [tb]([商品代号] int,[代理号] varchar(3),[型号] varchar(4),[代理价] numeric(3,2),[生效日] datetime)
insert [tb]
select 1001,'A01','H042',3.80,'2009-11-12' union all
select 1002,'B37','H042',5.80,'2009-11-13' union all
select 1001,'B01','H052',5.80,'2009-11-10' union all
select 1003,'B48','H032',3.8,'2009-11-17' union all
select 1002,'B37','H042',6.87,'2009-10-15'
--------------开始查询--------------------------
select
  *
from
  tb  t
where
  not exists(select 1 from tb where 商品代号=t.商品代号 and 代理号=t.代理号 and 型号=t.型号 and 代理价>t.代理价)


----------------结果----------------------------
/*商品代号        代理号  型号   代理价                                     生效日
----------- ---- ---- --------------------------------------- -----------------------
1001        A01  H042 3.80                                    2009-11-12 00:00:00.000
1001        B01  H052 5.80                                    2009-11-10 00:00:00.000
1003        B48  H032 3.80                                    2009-11-17 00:00:00.000
1002        B37  H042 6.87                                    2009-10-15 00:00:00.000

(4 行受影响)
*/




贴子:
http://topic.csdn.net/u/20091117/22/98dafeeb-fd09-4360-98b1-0ee5cc62e5cf.html?50267124

上一篇: Oracle EBS:常用SQL语句(2)
下一篇: 每一个人都是生活的奴隶-《蜗居》读后感
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
相关日志:
评论: 0 | 引用: 0 | 查看次数: 6920
发表评论
昵 称:
密 码: 游客发言不需要密码.
邮 箱: 邮件地址支持Gravatar头像,邮箱地址不会公开.
网 址: 输入网址便于回访.
内 容:
验证码:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 30 字 | UBB代码 关闭 | [img]标签 关闭