4

等号が認識されないというエラーが表示されます。私は常に Access でコードをテストして、動作することを確認しています。なぜこれが起こっているのか誰にも分かりますか?

コード:

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 のレポート ビューアーからレポートを取得して、特定の日付の間に使用された入札を教えてください。

元。

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 

これを行う他の方法はありますか?

すべての助けをありがとう。

4

1 に答える 1

1

次のような条項:

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

また、後日導入される新しい支払いタイプをクエリが自然に処理するという利点もあります。

于 2013-01-24T21:39:04.413 に答える