带有subselect的MS Access Insert不起作用

时间:2009-10-05 11:35:08

标签: sql ms-access

我有简单的查询,但是当我尝试执行此查询时,我收到错误:

  

查询输入必须至少包含一个表或查询。 (错误3067)

查询:

INSERT INTO FV_Ko ( FvId, OldPriceNetto )
SELECT [PFvId], (SELECT FV.PriceNetto1 FROM FV WHERE FV.FVnr = '123');

4 个答案:

答案 0 :(得分:2)

这应该有用 - 它应该要求你[PFvId]

INSERT INTO FV_Ko ( FvId, OldPriceNetto ) 
SELECT [PFvId], FV.PriceNetto1 FROM FV WHERE FV.FVnr = '123';

答案 1 :(得分:1)

子查询没问题,但你没有说PFvID的来源。你的INSERT应该是这样的:

INSERT INTO FV_Ko ( FvId, OldPriceNetto ) 
SELECT AnotherTable.PFvId, 
(SELECT FV.PriceNetto1 FROM FV WHERE FV.FVnr = '123') FROM AnotherTable

答案 2 :(得分:1)

如果PFvld是一个参数并且保存了查询(MyQuery)(MSAccess数据库的一部分),那么您应该可以这样做:

Dim qdf As DAO.QueryDef
Set qdf = db.QueryDefs("MyQuery")
qdf.Parameters("[PFvld]") = myValue

如果你动态编写查询并执行它,那么你可能只需在编写SQL代码而不是参数时指定一个值(不过它是一个更好的解决方案)。

答案 3 :(得分:0)

...   
SELECT [PFvId], --> you should define a FROM table at end of the query
(SELECT FV.PriceNetto1 FROM FV WHERE FV.FVnr = '123');