注册 登录
编程论坛 VB6论坛

vb6和SQL2000问题请教

初耕 发布于 2016-12-12 09:19, 2990 次点击
如下图,在text1内输入一个日期(比如2016-12-12),按查找按钮,在ListView1内显示SQL2000数据库date1中数据表tb1“日期”字段(datetime数据类型)里在指定日期(text1输入的日期xxxx-xx-xx)的前20条数据。拜请各位大侠,语句应该怎么写?
只有本站会员才能查看附件,请 登录

补充1、字段“日期”下面的记录不是连续的
    2、数据表tb1除“日期”字段外,另外有字段“姓名”、“工资”、“奖金”、“应扣”
    3、本语句的目的是要在ListView1内显示(text1内指定日期,比如2016-12-12日)前的20条记录。

[此贴子已经被作者于2016-12-12 12:37编辑过]

12 回复
#2
初耕2016-12-12 12:14
帮帮忙,各位大侠。我的QQ2952905323。有谁能帮忙加我,必酬谢!

[此贴子已经被作者于2016-12-12 12:31编辑过]

#3
xzlxzlxzl2016-12-12 12:53
sql="select top 20 * from tb1 where 日期='" & text1 & "'"
在ListView1显示好像要逐条记录添加
#4
初耕2016-12-12 14:19
谢谢大侠热情指导。按您的语句在ListView1倒是能够一次显示所有记录,只是数量不止20条。
只有本站会员才能查看附件,请 登录
#5
初耕2016-12-12 20:18
真没人吗?
#6
w3609894262016-12-12 20:34
换一个日期控件,
换一个datagrid数据控件,

语句就是sql="select  * from tb1 where 日期='" & 日期控件 & "'"

set datagrid1.datasource=adodc1 绑定
#7
初耕2016-12-12 21:46
回复 6楼 w360989426
谢谢老师。我是菜鸟,上不会用datagrid1控件
#8
初耕2016-12-13 02:19
自己参考网上写了一条select * from tb1 where 日期 > DateAdd(d,-20,getdate())order by len(序号),序号"得到的数据行数不是20呢?
#9
风吹过b2016-12-13 08:35
加这个参数,没问题的,以前我用过。
top 20

这个参数就是告诉 SQL 只需要返回最前面的 20条记录。
如果是MYSQL,参数又不同,忘了是什么了。
 
#10
w3609894262016-12-13 11:49
回复 7楼 初耕
不会就去学啊
#11
初耕2016-12-13 12:36
回复 9楼 风吹过b
尊敬的版主,你好!加上top 20 可以返回20条的,但这20条不是从指定日期往前取,而是从最早日期往后取了,从上表看,加了top 20是从9月1日往后取,我要的是从2016-12-12号往前取20条。麻烦您了,谢谢!

[此贴子已经被作者于2016-12-13 12:39编辑过]

#12
初耕2016-12-13 12:37
回复 10楼 w360989426
自学也离不开老师指导。这事情也比较急,所以直接请教了,望见谅。
#13
风吹过b2016-12-13 13:39
DateAdd(d,-20,getdate())
你这个是得到 指定日期前 20天的所有的记录。

那只能这样理解:
先查找指定日期前的所有记录,然后记录按日期(如果有流水号也可以按流水号)倒序排序(越近越前),取前 20条记录。
按这个理解去生成SQL命令。没有 测试环境,靠你自己啦。

1