关于SQL插入语句的问题

时间:2013-08-03 10:29:11

标签: sql ms-access insert

我在MS ACCESS数据库中遇到错误“查询值和目标字段数不相同”

以下是我的查询:

我将此命名为QryMetrics

SELECT A, B, C, D, E, F
FROM (SELECT count(ID ) as A FROM RelevantResults WHERE Field1 Is Not Null and Field1 <> Chr(13) & Chr(10))  AS Q1,
(SELECT count(ID) as B FROM RelevantResults WHERE Field2 Is Not Null)  AS Q2, 
(SELECT COUNT(ID) as C FROM RelevantResults WHERE Field3 Like '*.jpg' AND Field1 Is Not Null)  AS Q3, 
(SELECT COUNT(ID) as D FROM RelevantResults WHERE Field3 Like '*.jpg' OR Field1 Is Not Null)  AS Q4,
(SELECT COUNT(ID) as E FROM RelevantResults WHERE Field3 Like '*.jpg' OR Field1 Is Not Null OR Field2 Is Not Null)  AS Q5,
(SELECT COUNT(ID) as F FROM RelevantResults WHERE Field3 Like '*.jpg')  AS Q6;

插入查询:

StrSQL = "INSERT INTO metrics (Filename, Field1, Field2, Field3, Field4, Field5, Field6)
Select '" & strFile & "', QryMetrics.* from QryMetrics;"

我正在VB中使用DoCmd.RunSQL执行Insert查询。

DoCmd.RunSQL StrSQL

当我尝试在数据库中仅针对6个字段运行查询时: 我遇到了一个错误: Insert into语句包含以下未知字段名称:'A'

INSERT INTO metrics (Field1, Field2, Field3, Field4, Field5, Field6)
select  * from qryMetrics

对此有何想法?感谢

2 个答案:

答案 0 :(得分:0)

这解决了我的问题:

StrSQL = "INSERT INTO metrics (Filename, Field1, Field2, Field3, Field4, Field5, Field6)
Select '" & strFile & "', A, B, C, D, E, F from QryMetrics;"

答案 1 :(得分:-2)

INSERT INTO metrics (Filenae, Field1, Field2, Field3, Field4, Field5, Field6)
Select '" & strFile & "',     -- 1 column
        QryMetrics.*          -- + 6 from QryMetrix
from QryMetrics;              -- = 7 in total

insert中的列列表有6列(field1,field2,... field6),
但你选择了7列。