设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[与其它组件] 求一SQL

[复制链接]
跳转到指定楼层
1#
发表于 2006-3-28 21:33:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
原表:

key1 key2 key3

a 21 11
b 11 11
a 11 13
b 11 15
a 12 12
b 10 8

生成如下表:

key1 key2 key3

a1 21 11
a2 11 13
a3 12 12
b1 11 11
b2 11 15
b3 10 8


我以前好似做过,现在唔记得点做了,也不知在这个站从何查起,请各位指点一下
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-3-28 22:08:00 | 只看该作者
这是一个很困难的问题,原表与生成表有什么逻辑关系呢?要不在查询中先添加一个编号字段,再对a、b排序,后生成表。

[此贴子已经被作者于2006-3-28 14:10:16编辑过]

3#
 楼主| 发表于 2006-3-28 22:21:00 | 只看该作者
嗯关键是将 a...b ... 变为a1 a2.. ..b1..b2...

这个编号应该怎么加上去呢?

我印象中好似是用子查询去做的,现在就是记不起....

做完这步,我还要对这个表再作下一步的交叉查询...
4#
 楼主| 发表于 2006-3-28 22:37:00 | 只看该作者
谢谢sgrshh29的提醒,经过查找旧贴找到

SELECT 表1.mc, DCount("*","表1","[mc]='" & [mc] & "'and [id]<=" & [id]) AS 表达式1
FROM 表1;

应该可以做到,但SQL2000中好似无DCOUNT的做法,试试用这个原理做做先,再次感谢[em02]
5#
发表于 2006-3-28 22:46:00 | 只看该作者
ACCESS2000:

SELECT *
FROM [SELECT A.*,KEY1 & (SELECT COUNT(*) FROM B105T WHERE A.KEY3>=KEY3 AND A.KEY1=KEY1) AS DF FROM B105T A ORDER BY 4 ]. AS [%$##@_Alias]
ORDER BY DF;
6#
发表于 2006-3-28 23:05:00 | 只看该作者
如果记录数很多,还是用ado或dao比较快。
7#
发表于 2006-3-29 01:50:00 | 只看该作者
以下是引用wwwwa在2006-3-28 14:46:00的发言:


ACCESS2000:

SELECT *
FROM [SELECT A.*,KEY1 & (SELECT COUNT(*) FROM B105T WHERE A.KEY3>=KEY3 AND A.KEY1=KEY1) AS DF FROM B105T A ORDER BY 4 ]. AS [%$##@_Alias]
ORDER BY DF;



很是 叹服 wwwwa 和 sgrshh29 在论坛中给出的很多查询。

能否发个您认为较好的教程给我们学习一下,谢谢!

[此贴子已经被作者于2006-3-28 17:50:17编辑过]

8#
发表于 2006-3-29 04:41:00 | 只看该作者
用ADO做的例子


本帖子中包含更多资源

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

x
9#
 楼主| 发表于 2006-3-29 18:07:00 | 只看该作者
多谢各位的热情指点
但还是未有成功

SELECT keyid, ID, 物种,
          (SELECT COUNT(*)
         FROM dbo.初步一览资料
         WHERE 初步一览资料.keyid <= keyid AND 初步一览资料.物种 = 物种 AND
               初步一览资料.ID = ID) AS 列头
FROM dbo.初步一览资料

我用此形式得到的只是"初步一览资料"记录总数
说明一下,其中物种只有单一一个字如"布","印","线"....这类的单个物料
keyid 为表中的唯一的不连续的编号,ID为某张单的唯一识别号

初步一览资料
keyid id 物种
1 11 布
3 11 布
5 11 布
6 11 布
9 11 布
12 11 印
15 11 印
16 11 印
2 12 布
4 12 布
11 12 线
13 12 线


现在的结果是:
keyid id 物种 列头
1 11 布 12
3 11 布 12
5 11 布 12
6 11 布 12
9 11 布 12
12 11 印 12
15 11 印 12
16 11 印 12
2 12 布 12
4 12 布 12
11 12 线 12
13 12 线 12


我想得到的结果是这样:
keyid id 物种 列头
1 11 布 1
3 11 布 2
5 11 布 3
6 11 布 4
9 11 布 5
12 11 印 1
15 11 印 2
16 11 印 3
2 12 布 1
4 12 布 2
11 12 线 1
13 12 线 2


10#
发表于 2006-3-29 18:16:00 | 只看该作者
ADO做的例子已经可以实现你的结果,
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 12:18 , Processed in 0.101517 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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