MSSQL2000最近单价,不重复的单价,可能有重复的单价的。当traderid、materialid、work 均相同时
取最大BILLDATE日期后
再取最大单价 (注意顺序)视图:view_gyszjdj
日期, 供应商,物料资料,单价, 工序
billdate, traderid, materialid,price , work
2012-09-01, 1001 , A , 2 ,'机加'
2012-09-01, 1001 , B , 3 ,'机加'
2012-09-01, 1001 , B , 3 ,'机加'
2012-09-01, 1001 , B , 3.4 ,'机加'
2012-09-01, 1001 , B , 3.4 ,'机加'
2012-09-01, 1001 , A , 2.3 ,'打磨'2012-09-01, 4008 , B , 3 ,'机加'
2012-09-01, 4008 , B , 3.5 ,'机加'
2012-12-01, 4008 , B , 3.2 ,'机加'
2012-12-01, 4008 , B , 3.1 ,'抛光'
要求利用查询语句把结果转换为视图view日期, 供应商,物料资料,单价
billdate, traderid, materialid,price, work
2012-09-01, 1001 , A , 2 ,'机加'
2012-09-01, 1001 , A , 2.3 ,'打磨'
2012-09-01, 1001 , B , 3.4 ,'机加'2012-12-01, 4008 , B , 3.2 ,'机加'
2012-12-01, 4008 , B , 3.1 ,'抛光'
取最大BILLDATE日期后
再取最大单价 (注意顺序)视图:view_gyszjdj
日期, 供应商,物料资料,单价, 工序
billdate, traderid, materialid,price , work
2012-09-01, 1001 , A , 2 ,'机加'
2012-09-01, 1001 , B , 3 ,'机加'
2012-09-01, 1001 , B , 3 ,'机加'
2012-09-01, 1001 , B , 3.4 ,'机加'
2012-09-01, 1001 , B , 3.4 ,'机加'
2012-09-01, 1001 , A , 2.3 ,'打磨'2012-09-01, 4008 , B , 3 ,'机加'
2012-09-01, 4008 , B , 3.5 ,'机加'
2012-12-01, 4008 , B , 3.2 ,'机加'
2012-12-01, 4008 , B , 3.1 ,'抛光'
要求利用查询语句把结果转换为视图view日期, 供应商,物料资料,单价
billdate, traderid, materialid,price, work
2012-09-01, 1001 , A , 2 ,'机加'
2012-09-01, 1001 , A , 2.3 ,'打磨'
2012-09-01, 1001 , B , 3.4 ,'机加'2012-12-01, 4008 , B , 3.2 ,'机加'
2012-12-01, 4008 , B , 3.1 ,'抛光'
解决方案 »
- 刚开始学sql数据库,请教一个问题
- msde可不可以有多个实例呀,如何新建实例?
- 利用查询分析器备份远程数据库服务器数据的问题!
- 查询货品条码相似度为80%以上的店铺,求大虾指点。
- 触发器 实现更新
- 找不到程序集 Microsoft.SqlServer.Management.IntegrationServices
- 2000的系统,装完数据库SQL2000后,服务管理器打不开,提示不是合法的win32应用程序,怎么办?
- Bulk Insert 导入30G数据文件超慢
- 很菜的问题
- 请教: 这个表这样设计好不好 ?
- MFC下SQL Server查询分析数据分析(求助!!!急)
- SQL 怎么 通过副表录入信息,可自动更新到主表信息里??
where not exists(select 1 from view_gyszjdj
where traderid=a.traderid and materialid=a.materialid and work=a.work
and billdate>a.billdate)
谢谢回复!如果billdate=billdate如何处理?
FROM view_gyszjdj a
WHERE EXISTS ( SELECT 1
FROM ( SELECT MAX(billdate) billdate ,
traderid ,
materialid ,
WORK ,
MAX(price) price
FROM view_gyszjdj a
GROUP BY traderid ,
materialid ,
WORK
) b
WHERE a.billdate = b.billdate
AND A.traderid = b.traderid
AND a.materialid = b.materialid
AND a.WORK = b.WORK
AND a.price = b.price )
当traderid=traderid ,materialid=materialid,work=work 均相同时,
再取MAX(billdate)
如果此时 MAX(billdate)=MAX(billdate)
再取MAX(PRICE)