查询表达式中的语法错误?怎么解决这个问题

时间:2021-04-27 15:44:47

I am trying to insert value from select statement and i got error

我试图从select语句插入值,我得到错误

Syntax error in query expression 'Select C.ClientNo as ClientNo'

查询表达式中的语法错误'选择C.ClientNo作为ClientNo'

my query

我的疑问

Insert into [TempJobRecovery] (ClientNo,ClientName,TaxInvoiceNo,FeesforPS,TaxInvoiceDate,Partner,DeptNo,JobCode,TotalHour,TotalCost,Recovery,Status,PINO) Values
(Select C.ClientNo as ClientNo,
C.ClientName as ClientName,
C.taxinvoiceno as TaxInvoiceNo,
C.feesforps AS FeesforPS,
C.taxinvoicedte as TaxInvoiceDate,
C.Partner as Partner,
C.DeptNo as DeptNo,
C.JobCode as JobCode,
Sum(T.hrs) AS TotalHour,
Sum(T.hrs*T.corate) AS TotalCost,
(FeesforPS/TotalCost) as Recovery,
C.Status as Status,
C.PINO as PINO
 FROM Clienttaxinvoice AS C
 LEFT JOIN TimeSys AS T ON C.jobcode = T.jobcode 
WHERE ((C.ClientNo)=[T].[cntno]) and C.Taxinvoicedte>=#01/31/2017# and C.Taxinvoicedte<=#01/31/2018#GROUP BY SerialNo,ClientNo,ClientName,TaxInvoiceNo,FeesforPS,C.taxinvoicedte,Partner,DeptNo,C.JobCode,Status,PINO)

What is wrong with my query? Pls let me known.

我的查询有什么问题?请让我知道。

1 个解决方案

#1


3  

INSERT INTO when used in conjunction with a SELECT query does not use VALUES. Rather, VALUES is only used with inserting literal tuples of data. Try removing VALUES:

INSERT INTO与SELECT查询结合使用时不使用VALUES。相反,VALUES仅用于插入文字元组数据。尝试删除VALUES:

INSERT INTO [TempJobRecovery] (ClientNo, ClientName, TaxInvoiceNo, FeesforPS,
    TaxInvoiceDate, Partner, DeptNo, JobCode, TotalHour, TotalCost, Recovery,
    Status, PINO)
SELECT
    C.ClientNo,
    C.ClientName,
    C.taxinvoiceno,
    C.feesforps,
    C.taxinvoicedte,
    C.Partner,
    C.DeptNo,
    C.JobCode,
    SUM(T.hrs),
    SUM(T.hrs*T.corate),
    (FeesforPS / TotalCost),
    C.Status,
    C.PINO
FROM Clienttaxinvoice AS C
LEFT JOIN TimeSys AS T
     ON C.jobcode = T.jobcode 
WHERE
    C.ClientNo = [T].[cntno] AND
    C.Taxinvoicedte >= #01/31/2017# AND
    C.Taxinvoicedte <= #01/31/2018#
GROUP BY
    SerialNo,
    ClientNo,
    ClientName,
    TaxInvoiceNo,
    FeesforPS,
    C.taxinvoicedte,
    Partner,
    DeptNo,
    C.JobCode,
    Status,
    PINO

Note that I removed the aliases from the select statement above. There is no point to use aliases, because the column names are already fixed in the destination table for the insert.

请注意,我从上面的select语句中删除了别名。没有必要使用别名,因为列名已经固定在插入的目标表中。

#1


3  

INSERT INTO when used in conjunction with a SELECT query does not use VALUES. Rather, VALUES is only used with inserting literal tuples of data. Try removing VALUES:

INSERT INTO与SELECT查询结合使用时不使用VALUES。相反,VALUES仅用于插入文字元组数据。尝试删除VALUES:

INSERT INTO [TempJobRecovery] (ClientNo, ClientName, TaxInvoiceNo, FeesforPS,
    TaxInvoiceDate, Partner, DeptNo, JobCode, TotalHour, TotalCost, Recovery,
    Status, PINO)
SELECT
    C.ClientNo,
    C.ClientName,
    C.taxinvoiceno,
    C.feesforps,
    C.taxinvoicedte,
    C.Partner,
    C.DeptNo,
    C.JobCode,
    SUM(T.hrs),
    SUM(T.hrs*T.corate),
    (FeesforPS / TotalCost),
    C.Status,
    C.PINO
FROM Clienttaxinvoice AS C
LEFT JOIN TimeSys AS T
     ON C.jobcode = T.jobcode 
WHERE
    C.ClientNo = [T].[cntno] AND
    C.Taxinvoicedte >= #01/31/2017# AND
    C.Taxinvoicedte <= #01/31/2018#
GROUP BY
    SerialNo,
    ClientNo,
    ClientName,
    TaxInvoiceNo,
    FeesforPS,
    C.taxinvoicedte,
    Partner,
    DeptNo,
    C.JobCode,
    Status,
    PINO

Note that I removed the aliases from the select statement above. There is no point to use aliases, because the column names are already fixed in the destination table for the insert.

请注意,我从上面的select语句中删除了别名。没有必要使用别名,因为列名已经固定在插入的目标表中。