按发生顺序组织SQL数据
我试图根据项目发出的日期组织SQL数据 我在供应链工作,希望根据采购订单将我的数据作为第一个sku的“初始”和其他sku的“其他”进行订购 如果订单1111的sku 123于2018年1月2日进货,sku 543于2018年4月2日进货,则我希望sku 123先出现,然后在旁边写上“首字母”。而sku 543是第二个,上面写着“其他” 同样根据上述内容,如果2018年1月2日的订单12345中sku 123和2018年1月4日的sku 543标记为首字母或其他 我还介绍了版本1和版本2,它们是相互重复的,我需要加以区分 例如:按发生顺序组织SQL数据,sql,oracle,Sql,Oracle,我试图根据项目发出的日期组织SQL数据 我在供应链工作,希望根据采购订单将我的数据作为第一个sku的“初始”和其他sku的“其他”进行订购 如果订单1111的sku 123于2018年1月2日进货,sku 543于2018年4月2日进货,则我希望sku 123先出现,然后在旁边写上“首字母”。而sku 543是第二个,上面写着“其他” 同样根据上述内容,如果2018年1月2日的订单12345中sku 123和2018年1月4日的sku 543标记为首字母或其他 我还介绍了版本1和版本2,它们是相
SELECT SKU, PO, DATE
FROM TABLE_DATA;
如果我需要使用PL/SQL,那么我很乐意接受任何建议或指导。我觉得我的请求需要一份if声明或案例声明
编辑:
我有多个订单绑定到一个SKU。我需要系统也明白,当它是版本1或版本2。如果它是版本1和订单1111与SKU 123和SKU 543,我希望它订购的PO和日期 您可以使用
案例
和行号()
您可以使用case
和行号()
考虑从< <代码> > <代码>之后,按日期ASC < /代码>添加<代码>命令。我非常接近让我的代码工作,但它似乎与日期不符。似乎只有PO才订购。也可以解释“=1”吗?考虑在<代码> > <代码>之后,按日期ASC < /代码>添加<代码>命令。似乎只有PO才订购。你能解释一下“=1”吗?你在帖子中两次提到“版本”,但你没有给出任何细节。什么的版本?从SKU、PO、日期栏,您如何判断?或者你在“示例目的”中遗漏了一个专栏版本?你在文章中两次提到“版本”,但你没有给出任何细节。什么的版本?从SKU、PO、日期栏,您如何判断?或者,您是否缺少“示例目的”中的列版本?
select t.*,
(case when row_number() over (partition by po order by date asc) = 1
then 'initial'
else 'other'
end)
from table_data t;