求sql 查询语句

yander 2010-09-06 09:58:34
有一张表
仓库编码 商品编码 出库价 出库日期
CK0001 CH0001 13.010000 2010-09-01 00:00:00.000
CK0001 CH0001 15.000000 2010-08-16 00:00:00.000
CK0001 CH0003 100.000000 2010-07-27 00:00:00.000
CK0001 CH0003 100.000000 2010-08-09 00:00:00.000
CK0001 CH0003 100.000000 2010-08-10 00:00:00.000
CK0001 CH0003 100.000000 2010-08-16 00:00:00.000
CK0001 CH0003 100.000000 2010-09-06 00:00:00.000
CK0001 CH0006 120.000000 2010-09-01 00:00:00.000
CK0003 CH0001 12.500000 2010-08-30 00:00:00.000
CK0003 CH0001 13.010000 2010-09-03 00:00:00.000
CK0003 CH0002 80.000000 2010-08-07 00:00:00.000
CK0003 CH0002 80.000000 2010-08-26 00:00:00.000
CK0003 CH0003 100.000000 2010-08-05 00:00:00.000
CK0003 CH0003 100.000000 2010-08-06 00:00:00.000
CK0003 CH0003 100.000000 2010-08-16 00:00:00.000
CK0003 CH0003 100.000000 2010-08-26 00:00:00.000
CK0003 CH0003 100.000000 2010-08-29 00:00:00.000
CK0003 CH0003 100.000000 2010-08-30 00:00:00.000
CK0003 CH0003 100.000000 2010-08-31 00:00:00.000
CK0003 CH0003 100.000000 2010-09-01 00:00:00.000
CK0003 CH0003 100.000000 2010-09-03 00:00:00.000
CK0003 CH0003 100.320000 2010-08-26 00:00:00.000
CK0003 CH0004 65.000000 2010-08-07 00:00:00.000

目前是想把这些数据帅选过滤成同一仓库的同一商品只有一个出库价格(使用后日期的)
...全文
58 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanghe63 2010-09-06
  • 打赏
  • 举报
回复
select T.* from #TA T INNER JOIN
(SELECT 仓库编码,商品编码,MAX(出库日期) 出库日期 FROM #TA GROUP BY 仓库编码,商品编码) D
ON T.仓库编码=D.仓库编码 AND T.商品编码=D.商品编码 AND T.出库日期=D.出库日期
幸运的意外 2010-09-06
  • 打赏
  • 举报
回复
这个如果直接用分组的话,是做不出来的。必须用到exists运算,判断在其自身表里,不存在比某个日期还要大的日期,选出来即可。
select 仓库编码, 商品编码, 出库价, 出库日期
from tb t
where not exists(select 1
from tb
where 仓库编码=t.仓库编码 and 商品编码=t.商品编码 and 出库日期>t.出库日期)
yander 2010-09-06
  • 打赏
  • 举报
回复
也就是最后的数据是
CK0001 CH0001 13.010000 2010-09-01 00:00:00.000
CK0001 CH0003 100.000000 2010-09-06 00:00:00.000
CK0001 CH0006 120.000000 2010-09-01 00:00:00.000
CK0003 CH0001 13.010000 2010-09-03 00:00:00.000
CK0003 CH0002 80.000000 2010-08-26 00:00:00.000
CK0003 CH0003 100.000000 2010-09-03 00:00:00.000
CK0003 CH0004 65.000000 2010-08-07 00:00:00.000

水族杰纶 2010-09-06
  • 打赏
  • 举报
回复
select * 
from tb t
where not exists(select 1
from tb
where 仓库编码=t.仓库编码 and 商品编码=t.商品编码 and 出库日期>t.出库日期)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧