SQL - 當lineid為'01'時,使用newid,否則使用id
P粉394812277
P粉394812277 2024-04-02 12:08:51
0
1
471

我的表中有此類資料

行號 價格 €
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]
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板