IT人
相关图书

求一Access数据库的SQL

所属分类:其他数据库开发 Access
-----------------------------------------

有这样一个表tbl1(ID, Idx, A, MCaID)

ID       Idx      A                  MCaID
-------------------------------------------
1        NULL     XXXXXXXX           1
2        NULL     asdf               1
3        NULL     asdf               1
4        NULL     sdf                1
5        NULL     fasdf              2
6        NULL     asdf               2
7        NULL     dfas               2
8        NULL     fasdf              2
9        NULL     fsdas              3
10       NULL     fasdf              3
11       NULL     asdf               3

现在我想根据MCaID在Idx列中填入顺序号,如:
ID       Idx      A                  MCaID
-------------------------------------------
1        1        XXXXXXXX           1
2        2        asdf               1
3        3        asdf               1
4        1        fasdf              2
5        2        asdf               2
6        3        dfas               2
7        4        fasdf              2
8        1        fsdas              3
9        2        fasdf              3
10       3        asdf               3

在Access里面怎么实现?


----------------------------------------------------------------------

自己up一下

--------------------------------------------------------

update tbl1 set 
    Idx=dcount("id","tbl1","MCaID=" & A.MCaID " & " and id<= " & A.id)
from tbl1 as A


--------------------------------------------------------

Access使用的是Jet-SQL,而SQL Server使用的是T-SQL,两者用法上相差很大。

Access的Update语句中,对于子查询的支持远比不上SQL Server,所以要使用域函数。



JET SQL 帮助(jet4 access2000)下载地址

http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=




--------------------------------------------------------

--改

update tbl1 set 
    Idx=dcount("id","tbl1","MCaID=" & A.MCaID  & "  and id<= " & A.id)
from tbl1 as A



--------------------------------------------------------

--Access中正确的SQL语句应该是:


update tbl1 as A set 
    Idx=dcount("id","tbl1","MCaID=" & A.MCaID  & "  and id<= " & A.id)


--------------------------------------------------------

1、update tt as A set 
    Idx=dcount("id","tbl1","MCaID=" & A.MCaID  & "  and id<= " & A.id)
2、
select *,(select count(*) from tt 
where a.MCaID=MCaID and id<=a.id) from tt a
相关问题
    Copyright ◎ 1998 - 2007 编程资料网 All Rights Reserved