Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 如何根据我的结果集创建序列号?_Oracle - Fatal编程技术网

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的可视化定制。如果可能的话,最好为它们创建专用视图,并保持标准模型不变。它已经是一个视图了。您可以提供当前视图定义吗?所以我可以调整我的答案?我想你应该试试
行数
而不是
排名
这不起作用。你能说得更准确些吗?也。我要求你提供更多信息,因为目前看来,你不希望任何人帮助你。