How can you make use of "Row number over partition by" in MS access? I googled it, but couldn't find any information as to how one would go about doing this. I'm talking about this particular function, which assigns a sequential integer to each row within the partition of a result set:
RowNumber Over(Partition by city Order By EmployeeID)
My data looks like this:
DOC_TYPE Ino
3a 1800xxc1
3b 1810xxc2
3c 1700xxc3
3a 1700xxc4
3a 1800xxc5
3a 1800xxc6
3b 1800xxc7
However, I need it to look like this:
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
This is my query:
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;
This is taking more time as f 30 seconds
In many cases we can achieve a similar result by performing an unequal self-join on the table and aggregating the results. For example, for data in a table named [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
the query
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
returns
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With