在VB中如何查询数据库最早时间并且赋值给日期变量?我的数据库时间类型是文本的,初学,请教一下,谢谢!

在VB中如何查询数据库最早时间并且赋值给日期变量?我的数据库时间类型是文本的,初学,请教一下,谢谢!,第1张

Dim cnnmdb As ADODB.Connection

dim rs1 as recordset

Dim a As Date

Dim b As Date

Set cnnmdb = New ADODB.Connection

cnnmdb.Open "Provider=Microsoft.Jet.OLEDB.4.0Data Source=" &App.Path &"\110.mdbPersist Security Info=False"

set rs1=cnnmdb.Execute("select top 1 * from sheet1 order by CDate(T) desc")

a =CDate( rs1("日期字段名"))

set rs1 = cnnmdb.Execute("select top 1* from sheet1 order by CDate(T) asc")

b =CDate( rs1("日期字段名"))

例如员工列名为 worker,时间列名为time,表名为tableName,那么可得结果

select worker,min([time]) as 最早时间,max([time]) as 最后时间

from tableName

group by worker

where worker='员工a'

在数据库应用开发中,我们经常需要面对复杂的SQL式计算,固定分组就是其中一种。固定分组的分组依据不在待分组的数据中,而是来自于外部,比如另一张表、外部参数、条件列表等。对于特定类型的固定分组,用SQL实现还算简单(比如:分组依据来自另一张表,且对分组次序没有要求),但对于比较通用、灵活的要求,实现起来就困难了。

而对于SPL来说,完全可以轻松解决固定分组中的各类难题,下面就用几个例子来说明。

表sales存储着订单记录,其中CLIENT列是客户名,AMOUNT列是订单金额。表sales的部分数据如下:

db927b2b62cd0004325b98d0f4143d11.png

要求将sales按照“潜力客户列表”进行分组,并对各组的AMOUNT列汇总求和。这里的“潜力客户”就是一种固定分组,可能来自于外部不同的条件设定:

案例一:潜力客户列表来自于另外一张表potential的Std字段,只有四条记录,依次为:ANATR、BERGS、LACOR、ZTOZ,并且客户ZTOZ不在sales表中。在输出结果时,要求按照上述记录顺序来分组汇总。

如果我们对分组的顺序没有要求,那么SQL可以较简单地实现本案例:

select potential.std as client, sum(sales.amount) as amount from potential left join client on potential.std=sales.client group by potential.std。

但如果像本案例中要求的那样,按照特定的顺序来分组,那么用SQL实现的话就必须制造一个用于排序的字段,最后还要用子查询去掉这个字段。而用SPL实现则会简单很多


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6834561.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-29
下一篇 2023-03-29

发表评论

登录后才能评论

评论列表(0条)

保存