我有一个表格,商场货物进货表。产品编号 入库日期 价格 数量
--------- ------ ----- -------
ProductID InDate Price Ammount
000001 2007-07-03 1.31 100
920001 2007-07-10 2.31 200我现在想做一个查询,查询每周五这一天的所有进货记录,
如果在周五没有进货,则选出它在该周周一到周五最后一天的进货记录.例如:
2007-09-28是周五,有进货记录,选出这一条;
上周2007-09-21是周五,有进货记录,选出这一条
上上周2007-09-07至2007-09-14只有2007-09-10、2007-09-11有记录,选出2007-09-112007-08-31 至 2007-09-06 没有进货记录,不做选择;
2007-08-24至2007-08-31之间2007-08-28周五这天有记录,选出。
.............
--------- ------ ----- -------
ProductID InDate Price Ammount
000001 2007-07-03 1.31 100
920001 2007-07-10 2.31 200我现在想做一个查询,查询每周五这一天的所有进货记录,
如果在周五没有进货,则选出它在该周周一到周五最后一天的进货记录.例如:
2007-09-28是周五,有进货记录,选出这一条;
上周2007-09-21是周五,有进货记录,选出这一条
上上周2007-09-07至2007-09-14只有2007-09-10、2007-09-11有记录,选出2007-09-112007-08-31 至 2007-09-06 没有进货记录,不做选择;
2007-08-24至2007-08-31之间2007-08-28周五这天有记录,选出。
.............
from (
select tt.*,
row_number() over(partition by to_char(tt.InDate,'iw') order by InDate desc) as rn
from tablename tt
where tt.Ammount <> 0
)zz
where zz.rn = 1;