Rumah  >  Soal Jawab  >  teks badan

SQL - apabila lineid ialah '01', gunakan newid, jika tidak gunakan id

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粉394812277P粉394812277180 hari yang lalu376

membalas semua(1)saya akan balas

  • P粉648469285

    P粉6484692852024-04-03 09:50:47

    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]

    balas
    0
  • Batalbalas