sai*_*kri 5 ms-access ms-access-2010
如何在MS访问中实现分区上的行号.I Google但是无法找到信息,请您如何执行此操作
RowNumber Over(Partition by city Order By EmployeeID)
Run Code Online (Sandbox Code Playgroud)
我的数据看起来像这样
DOC_TYPE Ino
3a 1800xxc1
3b 1810xxc2
3c 1700xxc3
3a 1700xxc4
3a 1800xxc5
3a 1800xxc6
3b 1800xxc7
Run Code Online (Sandbox Code Playgroud)
我需要像这样
DOC_TYPE Ino Seq
3a 1800xxc1 1
3a 1700xxc4 2
3a 1800xxc5 3
3a 1800xxc6 4
3b 1810xxc2 1
3b 1800xxc7 2
3c 1700xxc3 1
Run Code Online (Sandbox Code Playgroud)
这是我的查询
SELECT t1.RT_TAXCODE, t1.INV_NO, COUNT(*) AS Sno
FROM GroupByTAXCODE AS t1 INNER JOIN GroupByTAXCODE AS t2 ON (t2.RT_TAXCODE = t1.RT_TAXCODE) AND (t2.Inv_no <= t1.Inv_no)
GROUP BY t1.RT_TAXCODE, t1.INV_NO
HAVING COUNT(*)=1
ORDER BY 1, 3;
Run Code Online (Sandbox Code Playgroud)
这需要更多的时间作为f 30秒
在许多情况下,我们可以通过在表上执行不相等的自联接并聚合结果来实现类似的结果.例如,对于名为[MyData]的表中的数据
Ino TYPE DOC
--- -------- ---
1 1800xxc1 3a
2 1810xxc2 3b
3 1700xxc3 3c
4 1700xxc4 3a
5 1800xxc5 3a
6 1800xxc6 3a
7 1800xxc7 3b
Run Code Online (Sandbox Code Playgroud)
查询
SELECT
t1.DOC,
t1.TYPE,
COUNT(*) AS [Ino Seq]
FROM
MyData AS t1
INNER JOIN
MyData AS t2
ON t2.DOC = t1.DOC
AND t2.Ino <= t1.Ino
GROUP BY
t1.DOC,
t1.TYPE
ORDER BY 1, 3
Run Code Online (Sandbox Code Playgroud)
回报
DOC TYPE Ino Seq
--- -------- -------
3a 1800xxc1 1
3a 1700xxc4 2
3a 1800xxc5 3
3a 1800xxc6 4
3b 1810xxc2 1
3b 1800xxc7 2
3c 1700xxc3 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21574 次 |
| 最近记录: |