设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2599|回复: 14
打印 上一主题 下一主题

[查询] 如何要联合查询“按理出牌”

[复制链接]
跳转到指定楼层
1#
发表于 2009-1-11 17:22:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
见附件:联合查询
要 t 从-42   到 62  三组顺序排列,mod 3=0出现重复,t<0时也不按理出牌。
大家帮帮有什么好办法?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-1-11 17:34:28 | 只看该作者
看不懂什么意思
3#
发表于 2009-1-11 17:46:06 | 只看该作者
原帖由 kelind 于 2009-1-11 17:22 发表
见附件:联合查询
要 t 从-42   到 62  三组顺序排列,mod 3=0出现重复,t


加一个字段分组不是要简单许多吗?
4#
 楼主| 发表于 2009-1-11 23:16:08 | 只看该作者
原帖由 todaynew 于 2009-1-11 17:46 发表


加一个字段分组不是要简单许多吗?

你做一下试试?
5#
 楼主| 发表于 2009-1-11 23:21:32 | 只看该作者
原帖由 Henry D. Sy 于 2009-1-11 17:34 发表
看不懂什么意思

简单说就是将记录分三列排。
一般是一条记录一行,现在要三条记录一行。
我的问题是在 [字般] mod 3 =0 时出了问题,先是将所有 mod3=0的记录排了一遍,这是多余的,如何消除?
在mod 3= 负数时,没有按顺序排列,不知道问题出在哪?
6#
发表于 2009-1-11 23:28:23 | 只看该作者
一般是一条记录一行,现在要三条记录一行。
还是看不明白,你能不能将要得到的结果贴张图出来
7#
发表于 2009-1-12 08:58:02 | 只看该作者
明白了
试试用记录集,也许会简单点。
8#
 楼主| 发表于 2009-1-12 23:18:23 | 只看该作者
原帖由 Henry D. Sy 于 2009-1-12 08:58 发表
明白了
试试用记录集,也许会简单点。

没明白,怎么用?实在没头绪。请赐教。
9#
发表于 2009-1-13 07:32:15 | 只看该作者
建一个您想要的结果表(空表)
然后,用ado打开原表,循环取出记录
在打开结果表,循环增加记录。
10#
发表于 2009-1-13 22:18:31 | 只看该作者
假设结果表名称为 A

Dim rs As New ADODB.Recordset
    Dim rst As New ADODB.Recordset
    Dim strSQL As String
    Dim lngArray() As Long
    Dim i As Long, j As Integer
    Dim k As Integer
    strSQL = "select t_id from tb_out where t_id mod 3=0 order by t_id"
    With rs
        .Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockReadOnly
        ReDim lngArray(.RecordCount - 1) As Long
        For i = 0 To .RecordCount - 1
            lngArray(i) = .Fields(0)
            .MoveNext
        Next
        .Close
        rst.Open "A", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
        For i = 0 To UBound(lngArray)
            strSQL = "select * from tb_out where t_id between " & lngArray(i) & _
                   " and " & lngArray(i) & "+2"
            .Open strSQL, CurrentProject.Connection, adOpenKeyset, _
                  adLockReadOnly
            rst.AddNew
            Do While Not .EOF
                For j = 0 To .Fields.Count - 1
                    rst.Fields(j + k) = .Fields(j)
                Next
                .MoveNext
                k = k + .Fields.Count
            Loop
            .Close
            rst.UpdateBatch
            k = 0
        Next
    End With
    rst.Close
    Set rst = Nothing
    Set rs = Nothing
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-4-29 06:59 , Processed in 0.096103 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表