討論區快速選單
知識庫快速選單
討論區最近新進100則主題 程式設計俱樂部Facebook粉絲團
[ 回上頁 ] [ 討論區發言規則 ]
多筆資料如何組成一筆呢?
更改我的閱讀文章字型大小
作者 : doris_huang(DORIS_HUANG)
[ 貼文 22 | 人氣 4500 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/29 下午 01:57:08
各位大大好,

如何撰寫一個store procedure可以把下面資料變成一筆資料呢?
TableA:
======================
id YM ACNO AMT
======================
1 2005/01 110201 12228.36
2 2005/02 110201 12328.36
3 2005/03 110201 12628.36
4 2005/04 110201 15228.36
5 2005/05 110201 13221.36
6 2005/06 110201 12828.36
7 2005/07 110201 12629.36
8 2005/08 110201 12728.36
9 2005/09 110201 12336.36
10 2005/10 110201 14456.36
11 2005/11 110201 14458.36
12 2005/12 110201 12788.36
13 2005/01 130401 12228.36
14 2005/02 130401 12328.36
15 2005/03 130401 12628.36
16 2005/04 130401 15228.36
17 2005/05 130401 13221.36
18 2005/06 130401 12828.36
19 2005/07 130401 12629.36
20 2005/08 130401 12728.36
21 2005/09 130401 12336.36
22 2005/10 130401 14456.36
23 2005/11 130401 14458.36
24 2005/12 130401 12788.36

希望可以變成:
===========================================================
ACNO AMT1 AMT2 AMT3 AMT4 AMT5 ... AMT12
===========================================================
110201 12228.36 12228.36 12328.36 12628.36 15228.36 ... 12788.36
130401 12228.36 12228.36 12328.36 12628.36 15228.36 ... 12788.36

請大家教教我好嗎?感恩~
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/29 下午 10:20:33
ACNO AMT1 AMT2 AMT3 AMT4 AMT5 ... AMT12<-這最後會希望變成實體資料存放嗎??

還是只要SELECT出來成查詢結果就好??
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/29 下午 10:25:48
還有你的欄位數是固定都是到AMT12個嗎??還是會隨者110201,130401的筆數會有不一定的欄位數

然後假設是不固定的,那麼會有可能110201,130401兩筆資料不一樣多的形發生ㄇ??

譬如:110201到AMT12可是130401只需要AMT10
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人doris_huang註記此篇回應為很有道理 2005/11/29 下午 10:30:14
如果查詢結果只用兩個欄位的方式來呈現結果,這樣的方式可以達到你的虛求嗎??
闢如只有ACNO AMT兩個欄位
ACNO紀錄110201
AMT紀錄12228.36,12228.36,12328.36,12628.36,15228.36,... 12788.36組起來的結果,並且用逗號隔開

這個方法會很好做!!
作者 : doris_huang(DORIS_HUANG)
[ 貼文 22 | 人氣 4500 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/11/30 下午 03:09:28
eliot(小台) 大大好,

     用二個欄位來做是個好方法,因為我前端的程式可以自動切成12個月,但是我現在對
     CURSOR的使用方式和FETCH的使用方式不太熟悉!
     如果是用二個欄位的方式,第二個欄位用分號(;)區隔每月的金額應該怎麼做?
     Eliot(小台) 大大是否可以示範一下重點語法?小妹感激不盡!!

作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
主題發起人doris_huang註記此篇回應為最佳解答 2005/12/1 上午 10:31:50
不用用到CURSOR
你先如下建立一個自訂函數

Create Function GetAMT(@ACNO AS Varchar(100))
Returns Varchar(8000)
Begin
DECLARE @Temp varchar(8000)
Set @Temp=''
SELECT @Temp=@Temp+AMT+',' FROM dbo.TableA WHERE ACNO=@ACNO
Return @Temp
End

然後查詢時直接如下
SELECT ACNO,GetAMT(ACNO) FROM dbo.TableA GROUP BY ACNO

就會出來了!!
我試過ok可以用,但是在Query Analyzer呼叫自訂函數,它會出現錯誤!!
但是程式呼叫ok
作者 : eliot(小台) VB.Net卓越專家SQL Server 7/2K卓越專家ASP.Net頂尖高手貼文超過2000則人氣指數超過10000點
[ 貼文 2213 | 人氣 28768 | 評價 9240 | 評價/貼文 4.18 | 送出評價 17 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/1 上午 10:42:56
補充一下我在Query Analyzer呼叫會錯原來是忘了加上擁有者
SELECT ACNO,dbo.GetAMT(ACNO) FROM dbo.TableA GROUP BY ACNO

如上這樣改進在Query Analyzer就可以呼叫到了
作者 : doris_huang(DORIS_HUANG)
[ 貼文 22 | 人氣 4500 | 評價 0 | 評價/貼文 0 | 送出評價 5 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/12/5 下午 02:11:41
Dear eliot(小台) ,

     感謝你^__^!我試出來了~YA!
 板主 : 徵求中
 > SQL Server 7/2000 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - SQL Server 7/2000 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
SQL Server 7/2000
1 小朱 1540 
2 小台 1520 
3 Gordon 600 
4 ㄉ一ˊㄎㄜˋ 580 
5 路人 490 
6 max 470 
7 william 410 
8 Aries 250 
9 阿利 180 
10 羅啟章 160 
SQL Server 7/2000
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2019 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625