如何在SQL中为每行select中的行插入数据库?

时间:2014-08-15 11:46:58

标签: sql ms-access access-vba

我试图通过运行查询来向Access数据库添加一行,该查询将获取SELECT查询的结果,然后获取该信息以执行for循环,如果我使用的是PHP或python,我会知道如何这样做,但我只能使用微软访问。

例如,如果我有一个列表客户并希望添加订阅已结束的客户,则该过程将是这样的。

  1. 选择订阅结束日期晚于NOW()
  2. 的订阅者
  3. 获取每个订阅者的姓名和号码,并将其作为新行添加到“Lost Customers”数据库
  4. “Lost Customers”数据库还有一个“订阅状态”列,因此我还希望每个插入的行都具有“已取消”的值。
  5. 这只是一个示例,以帮助解释我需要查询的内容,这不是我想要做的。

2 个答案:

答案 0 :(得分:2)

您可以使用insert . . . select执行此操作。代码看起来像:

insert into LoastCustomers(name, subscdribernuber, status)
    select name, subscribernum, 'Cancelled'
    from subscribers
    where subscriptionenddate >= now();

答案 1 :(得分:1)

您的问题不包含任何数据库表描述,因此我无法显示真正的SQL解决方案,但要查看的方向是可以使用SELECT语句创建INSERT语句:

INSERT INTO LOST_CUSTOMERS (CUST_NUM, CUST_NAME, STATUS)
 SELECT CUST_NUM, CUST_NAME, 'Cancelled'
   FROM CUSTOMERS
 WHERE END_DATE < now()

备注:我假设您希望客户现在有一个结束日期。您现在所有活跃的客户都有一个结束日期()