如果同一记录添加到新行上,则访问查询计数?

如果同一记录添加到新行上,则访问查询计数?

问题描述:

对于例子我有这样的访问表如果同一记录添加到新行上,则访问查询计数?

fruit person   price 
apple jhon   5 
apple mary   12 
pear  alison   10 
grape kim    12 
grape kim    24 
grape jack   9 

我们怎么能算水果和添加了另一个字段(couNum)这样呢?

couNum  fruit person   price 
    1  apple jhon   5 
    2  apple mary   12 
    1  pear  alison   10 
    1  grape kim    12 
    2  grape kim    24 
    3  grape jack   9 

请帮忙谢谢。

+0

使用'control-k'或者添加4个空格来格式化为代码 –

+0

它必须是访问查询 – Karakus

+0

我很努力去理解关系谓词(你表中每行的含义)。 “{葡萄,金,12}与'{葡萄,金,24}'有什么不同? - 金每次销售的葡萄都会收费两次,但是”两次收费“是什么意思? – onedaywhen

这是痛苦的在MS Access做,但你可以用一个子查询做到这一点 - 假设你必须为每个行的唯一列:

select t.*, 
     (select count(*) 
     from t as t2 
     where t2.fruit = t.fruit and t2.person <= t.person 
     ) as couNum 
from t; 

在大多数其他数据库,您只需使用row_number()。如果您正在学习SQL并且可以选择使用哪种数据库,那么我会引导您使用更为“最新”的数据库之一,例如Postgres,MySQL,SQL Server,Oracle或其他几乎所有的数据库。

+0

非常感谢。像魅力一样工作 – Karakus

+0

“这在MS Access中很痛苦” - 它看起来很酷。 IIRC Access有一个很好的报告工具。这会不会像报告那样痛苦? – onedaywhen