要求按生效日期/采购数量以最快的方式查询出来?兄弟们有什么更快高超?
谢谢!
一表结构如下:
产品编号 生效日期 采购数量 单价
A 2001/09/01 10 2.1
A 2002/01/01 10 2
A 2002/01/01 150 1.5
A 2006/01/01 150 1.3
B 2002/01/01 100 1.5要求出结果:
产品编号 生效日期 采购数量 单价
A 2002/01/01 10 2
A 2006/01/01 150 1.3
B 2002/01/01 100 1.5
谢谢!
一表结构如下:
产品编号 生效日期 采购数量 单价
A 2001/09/01 10 2.1
A 2002/01/01 10 2
A 2002/01/01 150 1.5
A 2006/01/01 150 1.3
B 2002/01/01 100 1.5要求出结果:
产品编号 生效日期 采购数量 单价
A 2002/01/01 10 2
A 2006/01/01 150 1.3
B 2002/01/01 100 1.5
解决方案 »
- 急!求一sql语句。关于统计
- 请教一个基础问题,为何我的电脑安装的MSSQL2000后,再安装MSSQL2005,始终安装不上企业管理器?
- SQL2005中关于时间差
- 一个Select语名句如何写。
- 用sql语句在一个表中删除重复记录
- 求救
- null值与''值 可以互换吗?对数据库有影响吗?
- 如何从sql server数据库中读取nvarchar类型的数据到delphi中来?
- 没办法学了,我要自杀!!!!!!!!!!
- 查询速度问题
- Sql数据库选择存储类型
- 请问这句有什么问题?select sid,okMoney from cost where (select ssid,sum(smoney) from cost_sales group by ssid)>1000
where not exists (
select 1 from tablename
where 产品编号 =a.产品编号 and 采购数量 =a.采购数量
and 生效日期 >a.生效日期
)
insert T select 'A', '2001/09/01', 10, 2.1
union all select 'A', '2002/01/01', 10, 2
union all select 'A', '2002/01/01', 150, 1.5
union all select 'A', '2006/01/01', 150, 1.3
union all select 'B', '2002/01/01', 100, 1.5select T.* from T
inner join
(select max(生效日期) as 生效日期 , 采购数量 from T group by 采购数量)
B on T.生效日期=B.生效日期 and T.采购数量=B.采购数量
order by T.产品编号, T.采购数量
--result
产品编号 生效日期 采购数量 单价
---- ------------------------------------------------------ ----------- ------------
A 2002-01-01 00:00:00.000 10 2.0
A 2006-01-01 00:00:00.000 150 1.3
B 2002-01-01 00:00:00.000 100 1.5(3 row(s) affected)
select T.* from T
inner join
(select max(生效日期) as 生效日期 , 产品编号, 采购数量 from T group by 产品编号, 采购数量)
B on T.生效日期=B.生效日期 and T.采购数量=B.采购数量 and T.产品编号=B.产品编号
order by T.产品编号, T.采购数量