台灣最大程式設計社群網站
線上人數
765
 
會員總數:241868
討論主題:187137
歡迎您免費加入會員
討論區列表 >> MS SQL >> SQL如何依品號分別產生連續序號SN
[ 變換順序 ]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
SQL如何依品號分別產生連續序號SN
價值 : 5 QP  點閱數:181 回應數:4

樓主

J.S
門外漢
0 14
255 16
發送站內信


各位先進好 ...
小弟有份資料,依下列語法寫出來資料格式SN會連續序號顯示(如:原資料顯示格式)...
但希望是可以依"品號"分別產生SN序號(如:希望資料顯示格式)

原SQL語法


原資料顯示格式
SN TD004 ONE
1 2A740100000 M330-20170214002-0001
2 2A700000002 A330-20170223006-0001
3 2A700000002 A330-20170619005-0001
4 2A700000002 A330-20170718001-0001
5 2A680100000 A330-20170202002-0001
6 2A680100000 A330-20170221001-0001
7 2A670000000 A330-20170316004-0001
8 2A480300001 A331-20170106002-0001
9 2A480300001 A331-20170215020-0001
10 2A480300001 A331-20170321003-0001
11 2A420100001 A330-20170320007-0001
12 2A420100001 A330-20170704006-0001
13 2A380100003 A330-20170831001-0001
14 2A340100008 A330-20171025008-0001
15 2A340100008 A330-20171130006-0001


希望資料顯示格式
SN TD004 ONE
1 2A740100000 M330-20170214002-0001
1 2A700000002 A330-20170223006-0001
2 2A700000002 A330-20170619005-0001
3 2A700000002 A330-20170718001-0001
1 2A680100000 A330-20170202002-0001
2 2A680100000 A330-20170221001-0001
1 2A670000000 A330-20170316004-0001
1 2A480300001 A331-20170106002-0001
2 2A480300001 A331-20170215020-0001
3 2A480300001 A331-20170321003-0001
1 2A420100001 A330-20170320007-0001
2 2A420100001 A330-20170704006-0001
1 2A380100003 A330-20170831001-0001
1 2A340100008 A330-20171025008-0001
2 2A340100008 A330-20171130006-0001



搜尋相關Tags的文章: [ 序號 ] , [ SN ] ,
本篇文章發表於2018-01-26 14:56
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

小魚
檢舉此回應
如果一定要用SQL的話,
可以用Max + 1,
外面包個If判斷,
外面再Insert進去

不過你的SN是主鍵嗎?
如果是主鍵不能塞重複的值
本篇文章回覆於2018-01-26 19:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
最有價值解答

pilipala
檢舉此回應
Row_Number() 是依靠 Partition By 來分類,而不是 Group By

https://docs.microsoft.com/zh-tw/sql/t-sql/functions/row-number-transact-sql
本篇文章回覆於2018-01-27 22:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
用TRIGGER 把MAX +1 比較容自吧
不然就要 指標+迴圈了 效能很差
本篇文章回覆於2018-01-28 00:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

J.S
檢舉此回應
非常感謝 不吝惜指教 ~~ OK 可以了
謝謝 !!


本篇文章回覆於2018-01-29 08:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   
1

回覆
如要回應,請先登入.