台灣最大程式設計社群網站
線上人數
880
 
會員總數:242933
討論主題:187836
歡迎您免費加入會員
討論區列表 >> VB.NET >> 計算資料表欄位內某個字串出現的次數
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
計算資料表欄位內某個字串出現的次數
價值 : 50 QP  點閱數:128 回應數:7

樓主

藍岳
門外漢
0 4
64 8
發送站內信

請問一下

我想計算資料表欄位內某個字串出現的次數,是否有辦法算出
資料表內容如下,例如我想計算出7月18-20 民生店 蔡承佑不論早班或是晚班出現的次數,不知是否有辦法呢?

日期 店別 早班人員 晚班人員
2018-07-18 00:00:00.000 民生店 蔡承佑 黃明智 王一一 林大慶
2018-07-18 00:00:00.000 民族店 王大明 林宜靜 陳明惠 張林依 周杰倫 陳明煌
2018-07-19 00:00:00.000 民生店 黃明智 王一一 林大慶 陳聰明
2018-07-19 00:00:00.000 民族店 陳明惠 張林依 王大明 林宜靜
2018-07-20 00:00:00.000 民生店 蔡承佑 黃明智 王一一 陳聰明
2018-07-20 00:00:00.000 民族店 周杰倫 陳明煌 王大明 林宜靜





搜尋相關Tags的文章: [ 資料表欄位 計算次數 ] ,
本篇文章發表於2018-07-18 15:54
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

P陳
檢舉此回應
如果一個人同一天不能上二個班的話,以下就可以了

SELECT Count(日期) AS 上班次數
FROM 管制表明細
WHERE ((([早班人員] & [晚班人員]) Like '%王大明%')) and 起迄時間

本篇文章回覆於2018-07-18 16:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

藍岳
檢舉此回應
感謝 P陳 大的解答

再請問一下兩個問題
1.WHERE ((([早班人員] & [晚班人員]) Like '%王大明%')) and 起迄時間 在語法上會出現錯誤"boolean AND 運算子中的資料類型 varchar 和 varchar 不相容。"
目前我是先用OR將早班,晚班分開判斷
2.如何將"上班次數"裡面的值轉換成數值拿出來用呢

謝謝
本篇文章回覆於2018-07-18 17:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

P陳
檢舉此回應
您要加油

1.WHERE ((([早班人員] & [晚班人員]) Like '%王大明%')) and 起迄時間
and 起迄時間 是要你自己轉換成 【and 日期 between #2018/07/18# and #2018/07/20# 】

2. 算出來就是數值了


3.你先不要用期間,算看看就知道了




本篇文章回覆於2018-07-19 20:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

P陳
檢舉此回應
用這樣就好了

SELECT Count(日期) AS 上班次數
FROM 管制表明細
WHERE ((([早班人員] & [晚班人員]) Like '%王大明%'))
本篇文章回覆於2018-07-19 21:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

Bobby
檢舉此回應


T-SQL 字串連接用 +
Oracle 字串連接用 |
請自行搜尋所使用的 DB 對應的語法
本篇文章回覆於2018-07-24 11:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

藍岳
檢舉此回應
感謝兩位的指導

語法的問題因該是資料庫的關係,我用的是MSSQL,這邊是我沒有說清楚

"SELECT Count(日期) FROM dbo.值班表 WHERE 早班人員 Like '%" & Label2.Text & "%' and 店別 like '" & Label1.Text & "' and 日期 BETWEEN '" & starttime & "' AND '" & endtime & "' or 晚班人員 Like '%" & Label2.Text & "%' and 店別 like '" & Label1.Text & "' and 日期 BETWEEN '" & starttime & "' AND '" & endtime & "'"

以上是我的語法,還請指教

另外關於查詢出來的數值,我一直以為需要自行寫進一個資料表內才能讀取,在測試後才知道是可以直接拿出來用的

Dim Q As Integer = dr.GetInt32(0)

目前問題已經解決

再次感謝
本篇文章回覆於2018-07-24 16:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

P陳
檢舉此回應
1. 早班比較一次 晚班也比較一次
建議用 早班 & 晚班 一次比較即可
速度較快 程式也較清爽

2.店別不必要用 LIKE,請 直接用 = 即可

"SELECT Count(日期) FROM dbo.值班表 WHERE 早班人員 & 晚班人員 Like '%" & Label2.Text & "%' and 店別 = '" & Label1.Text & "' and 日期 BETWEEN '" & starttime & "' AND '" & endtime & "'"
本篇文章回覆於2018-07-24 16:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

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