台灣最大程式設計社群網站
線上人數
1310
 
會員總數:244873
討論主題:188880
歡迎您免費加入會員
討論區列表 >> 其他DB >> 請問各位前輩 sql的 group by 的問題
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
請問各位前輩 sql的 group by 的問題
價值 : 10 QP  點閱數:2223 回應數:5

樓主

佛洛伊德
門外漢
0 5
373 8
發送站內信

請問我有一個表單如下:
--------userlog--------------------
play_user play_date

admin 2009/9/16 下午 05:32:40
admins 2009/9/16 下午 05:32:40
guest 2009/9/16 下午 05:32:40
guests 2009/9/16 下午 05:32:40
-----------------------------------
語法如下:
elseif v_method="依身份查詢" then
strSQL1="SELECT COUNT(play_user )AS [count],play_user "
strSQL1=strSQL1&" FROM userlog "
strSQL1=strSQL1&" WHERE (play_date BETWEEN '" & v_range1 & "' AND '" & v_range2 & "')"
strSQL1=strSQL1&" GROUP BY play_user "
strSQL1=strSQL1&" HAVING count (play_user) LIKE '______' OR count (play_user) NOT LIKE '______' "
strSQL1=strSQL1&" ORDER BY count (watch_second) DESC "

搜尋結果他會跑出
1
1
1
1
1
因為有用group by的關係,可是時間play_date的地方又一定要有group by
請問要怎麼用成我設定的 條件六個字元顯示一個,不是六個字元顯示一個!
希望跑出如下:
2
2

會的大大可以提點一下,感激不盡

本篇文章發表於2010-10-04 15:18
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
作者回應

佛洛伊德
檢舉此回應
多打了一個1

搜尋結果他會跑出
1
1
1
1


本篇文章回覆於2010-10-04 15:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

pilipala
檢舉此回應

請參考下面語法是否符合你的想法
資料庫是MS SQL,利用LEN()函數來判斷長度並利用Group by來計算有幾筆資料
本篇文章回覆於2010-10-05 08:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

佛洛伊德
檢舉此回應
感謝pilipala ~ 的解答

可是主要的問題group by 計算出來的資料都會變成群組,例如:
--------play_log---------
user_name

admin
admin
admin
guests
guests
guests
franks
------------------------
六個字元的結果
3 <==guests 3筆
1 <==franks 1筆

不是六個字元的結果
3

希望六個字元的結果是
4 <==把guests+franks

本篇文章回覆於2010-10-05 11:10
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

佛洛伊德
檢舉此回應
已用子查詢和union 解決了
本篇文章回覆於2010-10-05 14:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
最有價值解答

pilipala
檢舉此回應
希望六個字元的結果是
4 <==把guests+franks


上面語法滿足你的需求

已用子查詢和union 解決了


^^ ~
本篇文章回覆於2010-10-05 17:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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