需要帮助编写递归查询

时间:2014-05-30 09:30:25

标签: sql database ms-access

我有一个访问表格,格式如下: -

ID  |  Name  |  Qty
----+--------+------
  1 |  A1    |  10
  2 |  A2    |  20
  3 |  A1    |  30
  4 |  A2    |  40
  5 |  A1    |  50
----+--------+------

我想运行一个查询,该查询将返回Name匹配的每行上面的Qty之和。因此,输出将是: -

ID  |  Name  |  Output
----+--------+---------
  1 |  A1    |  0
  2 |  A2    |  0
  3 |  A1    |  10
  4 |  A2    |  20
  5 |  A1    |  40
----+--------+----------

我无法编写查询。我想我需要某种递归查询,但我不太熟悉SQL /数据库。

1 个答案:

答案 0 :(得分:1)

Access不支持递归。以下查询应该执行您想要的操作(我称之为NameQty表):

SELECT t1.Id,t1.name,sum(t2.Qty)
FROM NameQty t1
    LEFT JOIN NameQty t2 ON t1.name=t2.name AND t1.Id>t2.Id
GROUP BY t1.Id,t1.name
ORDER BY t1.Id

我认为您还应该使用除ID以外的其他列来定义"以上"。