VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

SQL指令問題

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
nkjc



註冊時間: 2004-08-06
文章: 5


第 1 樓

發表發表於: 星期五 八月 06, 2004 10:28 pm    文章主題: SQL指令問題 引言回覆

我有一個table裡面有五個欄位
p001 分機號碼
p002 開始撥打電話時間
p003 結束撥打電話時間
p004 撥打的電話號碼
p005 撥打的總時間

問題是這樣的:
我希望知道我撥打的電話號碼中(p004)哪一通電話號碼前面是002或005開頭而且總劃分鍾(p005)是最多的
然後將這個電話號碼紀錄下來,最後希望得到符合這個號碼的4個欄位:
1.撥出的號碼
2.這個號碼撥出的總時間
3.在資料庫中第一次撥打這隻號碼是什麼時候
4.再資料庫中最後一物撥打這隻號碼是什麼時候

希望大家能告訴我這4的欄位要如何利用sql指令得到結果
謝謝大家
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 2 樓

發表發表於: 星期五 八月 06, 2004 11:51 pm    文章主題: 引言回覆

select * from mytable where p004 in (select top 1 p004,sum( p005) as totime from mytable group by p004 order by totime) order by p002 into cursor telalldata
go top
? 'first time:',p002
go bott
? 'last time:',p002
sum p005 to totaltime
? totaltime

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
nkjc



註冊時間: 2004-08-06
文章: 5


第 3 樓

發表發表於: 星期六 八月 07, 2004 12:15 am    文章主題: 引言回覆

不好意思我執行的時候出現錯誤
關鍵字 'into' 附近的語法不正確
不知道是哪裡錯了
再麻煩您一下
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 4 樓

發表發表於: 星期六 八月 07, 2004 12:28 am    文章主題: 引言回覆

mssql Server 就不用加上這一句了" into cursor telalldata"
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
nkjc



註冊時間: 2004-08-06
文章: 5


第 5 樓

發表發表於: 星期六 八月 07, 2004 8:20 am    文章主題: 引言回覆

不好意思還是出現錯誤:
當子查詢並未由 EXISTS 導入時,只能在選取清單中指定一個運算式。
請您再指導一下
謝謝您
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 6 樓

發表發表於: 星期六 八月 07, 2004 10:24 am    文章主題: 引言回覆

一行SQL指令不行, 那就改成二行
select top 1 p004,sum( p005) as totime from mytable group by p004 order by totime
mp004 = p004
select * from mytable where p004=?mp004 order by p002

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
nkjc



註冊時間: 2004-08-06
文章: 5


第 7 樓

發表發表於: 星期六 八月 07, 2004 11:19 am    文章主題: 引言回覆

很像還是出現依樣的錯誤訊息耶
可以麻煩您把指令再重新寫一次
只寫指令的部分不用寫備註的部分
謝謝您
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 8 樓

發表發表於: 星期六 八月 07, 2004 3:09 pm    文章主題: 引言回覆

第三次回答你的問題前, 我自己已經模擬過你的狀況了, 所以這幾行指令是沒問題的, 或許是你的p005資料型態不為數值型態, 另外你該不會連 mytable 這個字也照抄吧, 這個字要改成你的table檔名才對. 所以如果還是出錯, 那就無法再幫忙你了.
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
goto-dream



註冊時間: 2004-05-11
文章: 909


第 9 樓

發表發表於: 星期六 八月 07, 2004 4:14 pm    文章主題: 引言回覆

nkjc .你這樣可不行阿.基本的都沒辦法解決.
最好花錢找人教妳.


sum( p005)-->p005是數字才這樣
sum( (val(p005))-->p005是文字才這樣

_________________
福隆昌淨水有限公司--淨水器的專家,淨水器,飲水機,濾心!!

想了解更多,您可上幸福雞湯組.找尋!!丁澐瑄.老師.

          愛作夢
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
Dragon



註冊時間: 2004-09-24
文章: 3


第 10 樓

發表發表於: 星期五 九月 24, 2004 3:00 pm    文章主題: 一步一步來 引言回覆

1.撥出的號碼
2.這個號碼撥出的總時間
3.在資料庫中第一次撥打這隻號碼是什麼時候
4.再資料庫中最後一物撥打這隻號碼是什麼時候
====>
select p004,sum(p005),min(p002),max(p002) from tablename group by p004


電話號碼中(p004)哪一通電話號碼前面是002或005開頭
===>
select p004,sum(p005),min(p002),max(p002) from tablename group by p004 having left(p004,3) in ('002','005')


總劃分鍾(p005)是最多
====>
select p004,sum(p005),min(p002),max(p002) from tablename group by p004 having left(p004,3) in ('002','005') order by sum(p005) desc Very Happy
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> SQL 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作