Oracle 如何根据我的结果集创建序列号?
这就是我的桌子目前的样子Oracle 如何根据我的结果集创建序列号?,oracle,Oracle,这就是我的桌子目前的样子 Month Product Value --------------------------------- 1 Shoes 12.00 1 Jacket 15.00 2 Shirt 3.00 我需要添加一个列,该列生成一个MonthlySalID,该ID在每个月递增,并在每个月更改时重置,如下所示 Month Product Valu
Month Product Value
---------------------------------
1 Shoes 12.00
1 Jacket 15.00
2 Shirt 3.00
我需要添加一个列,该列生成一个MonthlySalID,该ID在每个月递增,并在每个月更改时重置,如下所示
Month Product Value MonthlySaleID
------------------------------------------------
1 Shoes 12.00 1
1 Jacket 15.00 2
2 Shirt 3.00 1
任何线索都很好您可以尝试使用此视图:
CREATE OR REPLACE VIEW vw_rpt_sales AS
SELECT month, product, value, RANK() OVER (PARTITION BY month ORDER BY Product) AS MonthlySaleID
FROM
originaltable;
无法测试秩函数,理论上它应该返回您想要的结果。我按产品订购,因为在您的问题中,您似乎没有销售ID信息。但如果您有,我想最好是按SaleID订购。我们可以为您提供一个简单的答案。但我想知道更多的一般问题,因为我觉得我们应该重新考虑解决方案。我不确定我还能为这个问题补充什么。你需要澄清吗?我被要求生成一个报告,其行为与我所描述的一样,id每个月递增。所以,您不需要新的列,就这样。风景怎么样?特别是对于报告,他们通常要求一些不属于NF1-6的可视化定制。如果可能的话,最好为它们创建专用视图,并保持标准模型不变。它已经是一个视图了。您可以提供当前视图定义吗?所以我可以调整我的答案?我想你应该试试
行数
而不是排名
这不起作用。你能说得更准确些吗?也。我要求你提供更多信息,因为目前看来,你不希望任何人帮助你。