RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [求助]請教各位大大一個Sql Server 2000幼幼班的問題?   字型大小:||| 
劭鵬
銅驢友〔高級〕
等級: 10等級: 10等級: 10


十週年紀念徽章(二級)  

 . 積分: 193
 . 文章: 702
 . 收花: 1316 支
 . 送花: 1043 支
 . 比例: 0.79
 . 在線: 1098 小時
 . 瀏覽: 5762 頁
 . 註冊: 7996
 . 失蹤: 1012
#1 : 2005-5-21 02:27 PM     只看本作者 引言回覆

不好意思...貼在這個版不知道對不對...如果貼錯地方了...還煩請熊大移版!

以下便是小弟想請問各位大大的問題...

@createdate 這個參數的值為 '2005/05',因為要撈出這個月份每天的金額,問題就是要如何撈出這個月份包含前12個月(共13個月)每天的金額呢?如何將 @createdate 這個參數的值變為 '2005/04'、'2005/03'、'2005/02'...

SELECT       
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/01') AS V001,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/02') AS V002,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/03') AS V003,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/04') AS V004,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/05') AS V005,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/06') AS V006,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/07') AS V007,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/08') AS V008,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/09') AS V009,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/10') AS V010,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/11') AS V011,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/12') AS V012,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/13') AS V013,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/14') AS V014,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/15') AS V015,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/16') AS V016,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/17') AS V017,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/18') AS V018,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/19') AS V019,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/20') AS V020,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/21') AS V021,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/22') AS V022,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/23') AS V023,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/24') AS V024,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/25') AS V025,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/26') AS V026,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/27') AS V027,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/28') AS V028,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/29') AS V029,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/30') AS V030,
        (SELECT a.Amount FROM copf021 a WHERE a.createdate = @createdate + '/31') AS V031

[劭鵬 在 2005-5-21 11:28 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
jocosn
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15


今日心情

 . 積分: 1386
 . 精華: 2
 . 文章: 2945
 . 收花: 9537 支
 . 送花: 3671 支
 . 比例: 0.38
 . 在線: 1295 小時
 . 瀏覽: 19041 頁
 . 註冊: 7236
 . 失蹤: 1239
#2 : 2005-5-21 10:36 PM     只看本作者 引言回覆

你的資料庫是哪一種的?
Oracle?  Sql Server 2000? MySQL?
每家支援的語法有差異。
而且"問題就是要如何撈出5月份之前12個月的金額呢?"
可是看語法好像不速這樣。



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9409
 . 精華: 28
 . 文章: 9949
 . 收花: 79211 支
 . 送花: 10986 支
 . 比例: 0.14
 . 在線: 2902 小時
 . 瀏覽: 187021 頁
 . 註冊: 8004
 . 失蹤: 12
 . 大熊國
#3 : 2005-5-21 11:22 PM     只看本作者 引言回覆

Amount 是每天的amount, 還是以月計算? 因為你說是要"5月份每天的金額", 後來又是"5月份之前12個月的金額", 所以到底是以月, 還是以日來計算?

如果createdate='2005/05', 你可以試比較大小. 如select amount from copf021 where createdate => '2004/05'

不過以上只為猜測~ 如果可以的話, 將整個table的說明po一下~ 這樣比較好給意見~



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
劭鵬
銅驢友〔高級〕
等級: 10等級: 10等級: 10


十週年紀念徽章(二級)  

 . 積分: 193
 . 文章: 702
 . 收花: 1316 支
 . 送花: 1043 支
 . 比例: 0.79
 . 在線: 1098 小時
 . 瀏覽: 5762 頁
 . 註冊: 7996
 . 失蹤: 1012
#4 : 2005-5-21 11:34 PM     只看本作者 引言回覆

不好意思...因為我描述得不是很清楚...所以好像讓你們誤解了我的意思...

我想問的問題是要如何撈出現在這個月份以及前12個月份(共13個月)每天的Amount...table設計如下圖



[劭鵬 在 2005-5-21 11:36 PM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
Vic
開墾隊隊長.苦力
等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32等級: 32
老得不能再稱小的熊

十週年紀念徽章(五級)   終生苦力熊勳章  

今日心情

 . 積分: 9409
 . 精華: 28
 . 文章: 9949
 . 收花: 79211 支
 . 送花: 10986 支
 . 比例: 0.14
 . 在線: 2902 小時
 . 瀏覽: 187021 頁
 . 註冊: 8004
 . 失蹤: 12
 . 大熊國
#5 : 2005-5-22 09:31 PM     只看本作者 引言回覆

那就是

select seqno, amount from copf021 where createdate => '2004/04'

試試



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  訪問主頁  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
劭鵬
銅驢友〔高級〕
等級: 10等級: 10等級: 10


十週年紀念徽章(二級)  

 . 積分: 193
 . 文章: 702
 . 收花: 1316 支
 . 送花: 1043 支
 . 比例: 0.79
 . 在線: 1098 小時
 . 瀏覽: 5762 頁
 . 註冊: 7996
 . 失蹤: 1012
#6 : 2005-5-22 10:17 PM     只看本作者 引言回覆

那如果我要將 @createdate 減 1個月 的話要怎麼寫呢?又不能直接將 '2005/05' -1 會有錯誤訊息 " varchar 數值 '2005/05' 轉換成資料型別為 int 的資料行語法錯誤。"


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
jocosn
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15


今日心情

 . 積分: 1386
 . 精華: 2
 . 文章: 2945
 . 收花: 9537 支
 . 送花: 3671 支
 . 比例: 0.38
 . 在線: 1295 小時
 . 瀏覽: 19041 頁
 . 註冊: 7236
 . 失蹤: 1239
#7 : 2005-5-24 04:46 AM     只看本作者 引言回覆


引用:
劭鵬寫到:
那如果我要將 @createdate 減 1個月 的話要怎麼寫呢?又不能直接將 '2005/05' -1 會有錯誤訊息 " varchar 數值 '2005/05' 轉換成資料型別為 int 的資料行語法錯誤。"


劭鵬老大,所以才要問你是用哪一種資料庫啊?你到底是用哪一種資料庫?這麼神秘無法透露?
每種資料庫都有處理日期的函數,所以你查查看用哪一個函數作處理就好了。不需花時間去考慮要怎麼用 SQL 語法,SQL 語法不是萬能的,他不是萬能核子小金剛。:icons8

不然你就自己再設一個 @createdate2 的值  '2005/04'  去處理就好了,為什麼要花這麼偉大的工程去轉換型別去減一個月。:
你這樣做沒好處,因為資料庫你寫久寫爛寫煩了,你就會知道你還要做效能考量分析。你這樣做的效能絕對比我的建議還低。
或許搞語法可以很帥很神,但是如果你是上班族讓你的頭頭看到,你就被電慘了。


解出來的話你再 PO 文讓我們知道你的結果吧。加油!


PS. Amount...table 設計俺實在是看不懂,你的欄位夾雜有中英文,要小心,小心寫久上癮。因為有些資料庫會有編碼問題,小心他的相容性,這種情況你要特別註明,以方便後人維護。尤其是碰到資料庫匯入匯出、轉換資料庫時。

[jocosn 在 2005-5-24 05:01 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
劭鵬
銅驢友〔高級〕
等級: 10等級: 10等級: 10


十週年紀念徽章(二級)  

 . 積分: 193
 . 文章: 702
 . 收花: 1316 支
 . 送花: 1043 支
 . 比例: 0.79
 . 在線: 1098 小時
 . 瀏覽: 5762 頁
 . 註冊: 7996
 . 失蹤: 1012
#8 : 2005-5-24 07:52 PM     只看本作者 引言回覆

jocosn前輩...不好意思啦...標題我之前有改過了可能您沒有時間仔細看...我的資料庫是Sql Server 2000...

減一個月的方法我今天試出來了...如下:

DATEADD(MONTH,-1, @createdate)

因為我現在在學習 Reporting Services 很多東西都才剛開始...沒有想到效能的問題...只想到要如何將資料撈出來...Table也不是我設計的...

謝謝熊大跟jocosn前輩的幫忙...



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
jocosn
白銀驢友
等級: 15等級: 15等級: 15等級: 15等級: 15


今日心情

 . 積分: 1386
 . 精華: 2
 . 文章: 2945
 . 收花: 9537 支
 . 送花: 3671 支
 . 比例: 0.38
 . 在線: 1295 小時
 . 瀏覽: 19041 頁
 . 註冊: 7236
 . 失蹤: 1239
#9 : 2005-5-24 10:23 PM     只看本作者 引言回覆

不好意思,沒注意到標題。


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-4-20 04:24 AM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.029165 second(s), 7 queries , Qzip disabled