数据库中有以下重复记录:
仓库 材料编号 规格 名称 价格 日期
BF004 60302061 76 x 94x 82.5 3寸加壓紙管 15.12 2011-3-5
BF004 60302061 76 x 94x 82.5 3寸加壓紙管 14.85 2011-3-4
BF004 60302061 76 x 94x 82.5 3寸加壓紙管 15.12 2011-3-4
bf004 60302060 76 x 94x81.5 3寸加壓紙管 14.67 2011-2-26
bf004 60302060 76 x 94x81.5 3寸加壓紙管 14.67 2011-3-17我想得到以下结果:仓库 材料编号 规格 名称 价格 日期
BF004 60302061 76 x 94x 82.5 3寸加壓紙管 15.12 2011-3-5
bf004 60302060 76 x 94x81.5 3寸加壓紙管 14.67 2011-3-17
也就是日期最近的那一笔记录,要如何写SQL,谢谢
仓库 材料编号 规格 名称 价格 日期
BF004 60302061 76 x 94x 82.5 3寸加壓紙管 15.12 2011-3-5
BF004 60302061 76 x 94x 82.5 3寸加壓紙管 14.85 2011-3-4
BF004 60302061 76 x 94x 82.5 3寸加壓紙管 15.12 2011-3-4
bf004 60302060 76 x 94x81.5 3寸加壓紙管 14.67 2011-2-26
bf004 60302060 76 x 94x81.5 3寸加壓紙管 14.67 2011-3-17我想得到以下结果:仓库 材料编号 规格 名称 价格 日期
BF004 60302061 76 x 94x 82.5 3寸加壓紙管 15.12 2011-3-5
bf004 60302060 76 x 94x81.5 3寸加壓紙管 14.67 2011-3-17
也就是日期最近的那一笔记录,要如何写SQL,谢谢
where 日期=(select max(日期) from tb where 材料编号=a.材料编号)
where not exists (
select 1
from tab
where 仓库=a.仓库 and 材料编号= a.材料编号 and 规格 = a.规格 and 名称=a.名称
and 名称> a.名称
)
select 仓库, 材料编号, 规格, 名称, 价格, max(日期) from tb
group by 仓库 材料编号 规格 名称 价格
group by 仓库 材料编号 规格 名称测试SQLSET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[test](
[ck] [nchar](100) COLLATE Chinese_PRC_90_CI_AI NULL,
[bh] [nchar](100) COLLATE Chinese_PRC_90_CI_AI NULL,
[gg] [nchar](100) COLLATE Chinese_PRC_90_CI_AI NULL,
[mc] [nchar](100) COLLATE Chinese_PRC_90_CI_AI NULL,
[jg] [nchar](100) COLLATE Chinese_PRC_90_CI_AI NULL,
[rq] [nchar](100) COLLATE Chinese_PRC_90_CI_AI NULL
) ON [PRIMARY]insert into test
select 'BF004', '60302061', '76 x 94x', '82.5 3寸加壓紙管', '15.12', '2011-3-5'
go
insert into test
select 'BF004', '60302061', '76 x 94x', '82.5 3寸加壓紙管', '14.85', '2011-3-4'
go
insert into test
select 'bf004', '60302061', '76 x 94x', '82.5 3寸加壓紙管', '15.12', '2011-3-4'
go
insert into test
select 'bf004', '60302060', '76 x 94x', '81.5 3寸加壓紙管', '14.67', '2011-2-26'
go
insert into test
select 'bf004', '60302060', '76 x 94x', '81.5 3寸加壓紙管', '14.67', '2011-3-17'
goselect ck,bh,gg,mc,max(jg),max(rq)
from test
group by ck,bh,gg,mc应该没问题,但是价格字段的逻辑需要确认是不是求最大的。