SQL - 当lineid为'01'时,使用newid,否则使用id
P粉394812277
P粉394812277 2024-04-02 12:08:51
0
1
479

我的表中有此类数据

行号 价格 €
01 100.00
02 200.00
01 10.34
01 311.12
01 14.33
02 36.44
03 89.70
04 11.33

我希望我的输出是这样的

文档 行号 价格 €
1 01 100
1 02 200.00
2 01 10.34
3 01 311.12
4 01 14.33
4 02 36.44
4 03 89.70
4 04 11.33

它的发票数据以及每行具有 lineid='01' 的数据意味着该信息适用于不同的发票,因此我必须使用新的 documentID 对其进行标记,我希望您帮助我使用命令创建它。< /p>

这可能很简单,但我在这里像疯子一样搜索,但找不到解决方案。

编辑:是的,我想要的是“每次 lineid 等于 01 时递增 docid”

P粉394812277
P粉394812277

全部回复(1)
P粉648469285

您可以使用如下所示的运行计数(假设这是您正在谈论的 MS SQL)

SELECT ROW_NUMBER() over(partition by [LineId] order by [LineId]) as DocId,
      [LineId],
      [Price]
  FROM [StackOverflow].[dbo].[RunningCount] order by [LineId]
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板