我正在尝试根据项目发送日期来组织我的SQL数据。
我在供应链工作,想要将我的数据作为第一个sku的“初始”和基于PO的其他sku的“其他”。
如果PO 1111有sku 123进入1/2/18并且sku 543在4/2/18进来,那么我想首先出现sku 123,然后在它旁边说'initial'。而sku 543排在第二位且说“其他”。
同样从上面,如果PO 12345在1/2/18上具有sku 123并且在1/4/18上具有sku 543,则标记为初始或其他。
我还有版本1和版本2,它们是我需要区分的彼此重复的版本。
例如:
SELECT SKU, PO, DATE
FROM TABLE_DATA;
如果我需要使用PL / SQL,那么我很乐意接受任何建议或指导。我觉得好像我的请求需要IF声明或CASE声明。
编辑:
我有多个PO绑定到一个SKU。我需要系统也理解当它是版本1或版本2.如果是版本1和PO 1111与SKU 123和SKU 543我想要它按PO和日期订购它。
答案 0 :(得分:3)
您可以使用case
和row_number()
:
select t.*,
(case when row_number() over (partition by po order by date asc) = 1
then 'initial'
else 'other'
end)
from table_data t;