2013-01-22 75 views
4

我收到一条错误,指出等号无法识别。我总是在Access中测试我的代码以确保它能正常工作。有谁知道为什么会发生这种情况?'='在SQL语句中未识别

代码:

SELECT SUM(
         IIf(TransactionType = 'Cash', 
         TotalPrice, 0) 
      ) AS TotalCash, 
     SUM(
         IIf(TransactionType = 'Credit', 
         TotalPrice, 0) 
      ) AS TotalCredit, 
     SUM(
         IIf(TransactionType = 'Check', 
         TotalPrice, 0) 
      ) AS TotalCheck, 
     SUM(
         IIf(TransactionType = 'Multiple', 
         IIf(MultiCash = 0, 
         0, MultiCash), 0) 
      ) AS MultipleCash, 
     SUM(
         IIf(TransactionType = 'Multiple', 
         IIf(MultiCredit= 0, 
         0, MultiCredit), 0) 
      ) AS MultipleCredit, 
     SUM(
         IIf(TransactionType = 'Multiple', 
         IIf(MultiCheck = 0, 
         0, MultiCheck), 0) 
      ) AS MultipleCheck 

FROM RECEIPT 

WHERE ReceiptDate BETWEEN ? AND ? 

错误:

Generated SELECT statement. 
    Error in list of function arguments: '=' not recongized. 
    Unable to parse query text. 

编辑:

让我来告诉你我想要做的,而不是仅仅张贴代码。这可能是解决这个问题的另一个简单方法。所以我想从vb.net的报表查看器中获取报告,告诉我在特定日期之间使用的投标。

Ex。

1/20/2013 
Transaction Type     Amount 
Cash        $100.00 
Check       $300.00 
Credit       $1,000.00 
MultiCash      $1,500.00 
MultiCheck      $1,500.00 
MultiCredit      $1,500.00 

类似于报表查看器中的内容。用户将能够选择特定的日期。 我的Access数据库表中提取信息的方式如下所示。

RECEIPT 
----------- 
ReceiptNumber (PK) 
ReceiptDate 
TotalPrice 
TransactionType 
MultiCash 
MultiCheck 
MultiCredit 
TotalTax 

有没有其他方法可以做到这一点?

感谢您的帮助。

+0

你从哪里运行此代码并获取错误?你有'vb.net'作为标签;这是一个'TableAdapter',或者您试图从'vb.net'代码运行的查询吗? – mellamokb

+0

你在Access或其他数据库中运行此代码? – Taryn

+0

我在一个TableAdapter中运行,在vb.net中运行。该数据库是一个Access数据库。 –

回答

1

条款喜欢:

IIf(MultiCash = 0, 0, MultiCash) 

什么都不做。你说“如果multicash是0,则使用0,否则使用该值...”

它看起来像一个过度复杂的方法。试试这个,它会给你一个稍微不同的格式的数据,但我怀疑它会接近你以后

SELECT TransactionType, 
     SUM(TotalPrice) AS SumTotalPrice, 
     SUM(MultiCash) AS MultipleCash, 
     SUM(MultiCredit) AS MultipleCredit, 
     SUM(MultiCheck) AS MultipleCheck 
FROM Receipt 
WHERE ReceiptDate BETWEEN ? AND ? 
GROUP BY TransactionType 

它也有上升空间,查询自然会处理新的付款方式在晚些时候推出。