在时间段内统计问题。姓名 服务对象 日期张三丰 李小姐 2003-3-1
张三丰 吴娜 2003-3-2
郑浩南 关芝林 2003-3-4
如何统计在限定的日期时间段内 张三丰 出现的次数?查询的时候不允许直接用 张三丰来查寻,因为姓名也是动态增加的。如和统计列出所有姓名而不重复?如张三丰 从2003-3-1 到 2003-3-4 重复出现了2次。
如张三丰 从2003-3-2 到 2003-3-4 重复出现了1次。望各位高手 再帮忙。
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorLocation = adUseClient
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "select 姓名,count(*) as 重复次数 from 表1 group by 姓名", dbConnectionString, , , adCmdTable
张三丰 吴娜 2003-3-2
郑浩南 关芝林 2003-3-4
如何统计在限定的日期时间段内 张三丰 出现的次数?查询的时候不允许直接用 张三丰来查寻,因为姓名也是动态增加的。如和统计列出所有姓名而不重复?如张三丰 从2003-3-1 到 2003-3-4 重复出现了2次。
如张三丰 从2003-3-2 到 2003-3-4 重复出现了1次。望各位高手 再帮忙。
Set rstEmployees = New ADODB.Recordset
rstEmployees.CursorLocation = adUseClient
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "select 姓名,count(*) as 重复次数 from 表1 group by 姓名", dbConnectionString, , , adCmdTable
Where 日期字段 between 日期1 And 日期2
group by 姓名", dbConnectionString, , , adCmdTable
strSQL="Select 姓名,Count(*) As 重复次数 From 表1 Where 姓名='" & 查询姓名的变量 & "'"
rstEmployees.Open strSQL,cn, 1,3,1,adCmdText
rstEmployees.Open "select 姓名,count(*) as 重复次数 from 表1
Where 日期字段 between 日期1 And 日期2
group by 姓名", dbConnectionString, , , adCmdText但是如果限制了姓名的話﹐每次的查詢只能查一個的記錄﹐是樓主想要的答案嗎?
根据你的语句,查出的记录为 0
rstEmployees.CursorLocation = adUseClient
rstEmployees.CursorType = adOpenKeyset
rstEmployees.LockType = adLockOptimistic
rstEmployees.Open "select 姓名,count(*) as 重复次数 from 表1 group by 姓名", dbConnectionString, , , adCmdTextIf rstEmployees.Fields.Count = 0 Then Exit Sub
Do While Not rstEmployees.EOF
For i = 0 To rstEmployees.RecordCount - 1
MsgBox rstEmployees.Fields("姓名").Value & rstEmployees("重复次数") rstEmployees.MoveNext
Next i
Loop
Where 日期字段>=日期1 And 日期字段<=日期2
group by 姓名", dbConnectionString, , , adCmdText如果再不行的話﹐看一下你的查詢條件是否正確﹐參數是否變一下﹐再查
你的方法和我的一样,现在主要问题是如何在限定的时间段内进行统计。
Where 日期字段 between 日期1 And 日期2
group by 姓名", dbConnectionString, , , adCmdText
stEmployees.Fields.Count还是为0是不是先在时间段内生成一个表,然后再在生成表里进行统计呢?
这又怎么实现?
张三丰 吴娜 2003-3-2
郑浩南 关芝林 2003-3-4
试试这个:
select 姓名,count(姓名) as FCount,datedepart(date,日期) from 表1 group by 姓名,datedepart(date,日期)
Where 日期字段 between " & "'" & "#" & 日期1 & "#" & "'" And "'" & "#" & 日期2 & "#" & "'" 在形成sql时的语句是这个样子的
select* from tblbooklog where awake_time between #2002-01-01 00:00:00# and #2003-12-12 00:00:00#以上是在access中能成功运行的
而且你的数据库中如果只有日期没有时间则在日期1和日期2中就必须只有日期没有时间
如果数据库中包含了时间,而你要比较的是日期,那么就要把数据库中的时间中的日期取出来再比较在oracle中就不能这样写
要将时间型转换成oracle能识别的格式
用format或者to_date()