在SQL Server CE中使用select和values插入到表中

在SQL Server CE中使用select和values插入到表中,select,sql-server-ce,Select,Sql Server Ce,我有一个语法正确的查询(使用SQL Server验证),但当我为SQL Server CE执行该查询时,它会给出以下错误: 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 Pr

我有一个语法正确的查询(使用SQL Server验证),但当我为SQL Server CE执行该查询时,它会给出以下错误:

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'))
错误:

分析查询时出错。[令牌行编号=1,令牌行偏移量=63,令牌出错=选择]

我要做的是使用select插入表中的date列为Today和其他值


我怎样才能做到这一点?

这个查询对我来说毫无意义。这是我最接近你写的东西,但我怀疑这不是你的意思

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';

为什么要混合使用旧式联接和新式联接?您确定CE引擎与成熟的sql server具有相同的解析器/执行器吗?仅仅因为它们在命名上有相似之处,并不意味着它们实际上会工作相同。与sql server相比,sql CE有很多局限性。我认为sql ce不支持这种插入。是否有一种方法可以使用select将表的date列插入为Today和其他值。如果希望它是Today,为什么要使用字符串“12/02/2012”而不是使用GETDATE()?