I have a table as follows:
Date Line Qty RN
15-03-18 1 10 1
16-03-18 1 10 2
17-03-18 1 10 3
18-03-18 1 10 4
15-03-18 2 10 5
16-03-18 2 10 6
17-03-18 2 10 7
我有一个组合框,有5,6和7选项 如果用户选择5,我希望为rownum 6和7 = 0创建数量 如果用户选择6,我希望为rownum 7 = 0创建数量 如果用户选择7,我希望保持数量(对于每一行) 含义为日期选择数量5天,6天或7天使休息0 但是我的行数是1,2,mabbe高达100。 我需要在7(每周)范围内转换它们,然后相应地进行转换 数量0。
尝试这样的事情: 如果从组合框中选择5:
SELECT date,line,(CASE
when rn=6 then 0
when rn=7 then 0
else qty
end) as qty
from above table
我根据rn(rownum)选择日期,行和更改数量。感谢任何帮助。
答案 0 :(得分:0)
使用函数mod()
和sign()
,这种结构给了我所需的值:
select tbl.*, decode(sign(5 - mod(rn - 1, 7)), 1, qty, 0)
from tbl
<强> demo 强>
代替硬编码5
放置参数。