vb.net – 在SQL语句中无法识别’=’

我收到一条错误,指出无法识别等号.我总是在Access中测试我的代码以确保它能够正常工作.有谁知道为什么会这样?

码:

SELECT SUM(
                       IIf(TransactionType = 'Cash',TotalPrice,0)
           ) AS TotalCash,SUM(
                       IIf(TransactionType = 'Credit',0)
           ) AS TotalCredit,SUM(
                       IIf(TransactionType = 'Check',0)
           ) AS TotalCheck,SUM(
                       IIf(TransactionType = 'Multiple',IIf(MultiCash = 0,MultiCash),0)
           ) AS MultipleCash,IIf(MultiCredit= 0,MultiCredit),0)
           ) AS MultipleCredit,IIf(MultiCheck = 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中的报告查看器中提取报告,告诉我在特定日期之间使用的投标.

防爆.

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

可能还有其他任何方法吗?

谢谢你的帮助.

解决方法

条款如:

IIf(MultiCash = 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

它还有一个好处,即查询将自然处理以后引入的新支付类型.

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...