SQL - apabila lineid ialah '01', gunakan newid, jika tidak gunakan id
P粉394812277
P粉394812277 2024-04-02 12:08:51
0
1
483

Saya mempunyai data sedemikian dalam jadual saya

nombor talian Harga €
01 100.00
02 200.00
01 10.34
01 311.12
01 14.33
02 36.44
03 89.70
04 11.33

Saya mahu output saya menjadi seperti ini

Dokumentasi nombor talian Harga €
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

Data invoisnya dan setiap baris mempunyai lineid='01' bermakna maklumat adalah untuk invois yang berbeza jadi saya perlu menandainya dengan documentID baharu dan saya ingin bantuan anda untuk menciptanya menggunakan arahan. < /p>

Ini mungkin mudah tetapi saya telah mencari seperti orang gila di sini dan tidak dapat mencari penyelesaian.

EDIT: Ya, apa yang saya mahukan ialah "increment docid setiap kali lineid sama dengan 01"

P粉394812277
P粉394812277

membalas semua(1)
P粉648469285

Anda boleh menggunakan run count seperti di bawah (dengan andaian ini adalah MS SQL yang anda maksudkan)

SELECT ROW_NUMBER() over(partition by [LineId] order by [LineId]) as DocId,
      [LineId],
      [Price]
  FROM [StackOverflow].[dbo].[RunningCount] order by [LineId]
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan