2012-06-15 71 views
0

我有一个语法正确的查询(使用SQL Server进行验证),但是当我为SQL Server CE执行它时,它给出以下错误:使用SQL Server CE中的select和values插入到表中

insert into HistoryPC (Date, Col1) 
values ('12/02/2012', (SELECT COUNT(CASE WHEN i.ProductCode = 'XXX' and i.ProductCode = p.ProductCode THEN Quantity END) 
         FROM Product p, Invoice_Details i 
         left outer join Invoice_Header h on h.Invoice_NO = i.Invoice_No 
         WHERE h.Date = '2012-06-02')) 

错误:

There was an error parsing the query. [ Token line number = 1,Token line offset = 63,Token in error = SELECT ]

我要的是插入表格的日期列是使用选择今天和其他值。

我该怎么做?

+0

为什么混合旧式和新式连接? –

+0

你确定CE引擎和全成型的sql server有相同的解析器/执行器吗?仅仅因为他们在命名上有相似之处,并不意味着他们的实际工作原理是一样的。 –

+0

与sql server相比,sql CE有很多限制。我认为sql ce不支持这种插入。有没有办法可以插入表的日期列为今天和其他值使用选择。 – user1450810

回答

1

查询对我来说没有任何意义。这是我能够接近你写的,但我怀疑这不是你的意思。

insert into HistoryPC (Date,Col1) 
SELECT '12/02/2012', 
    SUM(CASE WHEN i.ProductCode = 'XXX' THEN Quantity ELSE 0 END) 
FROM Product AS p 
INNER JOIN Invoice_Details AS i 
ON i.ProductCode = p.ProductCode 
LEFT OUTER JOIN Invoice_Header AS h 
ON h.Invoice_NO = i.Invoice_No 
AND h.Date = '2012-06-02';