1

私が求めているのは、MS Access で sql を使用してフォームベースで作業した量の要約です。これが私がやりたいことです。

Sum(IIf(([Time Report].Destination) Like 'D-[Time Report].[Baselocation]',0)) AS [Total WorkFromBase in P2]

MS Access は正規表現を理解しないため、これは機能しません。一致させるには「D-」を追加する必要があります。

私の知る限り、私のオプションは次のとおりです。

  1. VB マクロ (?) を学習して使用し、パターン マッチングを正しく行う
  2. else ifSQL にはネイティブ条件がないため、複雑な IIf ステートメントのセットを使用します。

私は VB を知りません。私が見たのは 1 つのだけで、意味がわかりませんでした。

大量の IIf を使用する場合、次のようなものがあります

Sum(
    IIf(D-[Time Report].[Baselocation] = 'Base1', IIf(
        ([Time Report].Destination) = 'D-Base1',
    IIf(D-[Time Report].[Baselocation] = 'Base2', IIf(
        ([Time Report].Destination) = 'D-Base2',
    IIf(D-[Time Report].[Baselocation] = 'Base3a', IIf(
        ([Time Report].Destination) = 'D-Base3a' OR ([Time Report].Destination) = 'D-Base3b',
    IIf(D-[Time Report].[Baselocation] = 'Base3b', IIf(
        ([Time Report].Destination) = 'D-Base3a' OR ([Time Report].Destination) = 'D-Base3b',    ))
)) AS [Total Work From Base in P1],

それから私はSyntax Error (Missing operator)型エラーになってしまいます、

では、2 つの列を一致させ、類似している場合に合計するにはどうすればよいでしょうか。

4

2 に答える 2

1

... 一致させるには「D-」を追加する必要があります。

「D-」を に連結してから、比較 [Baselocation]ではなく等号を使用できます。Like

[Time Report].Destination) = "D-" & [Time Report].[Baselocation]

ただし、IIf()式には 3 つの引数が含まれます。

IIf(expr, truepart, falsepart)

あなたの例では、2 つの引数 AFAICT のみを指定しました。Sum()が の場合は何らかの値 ( [amount worked]?)を含めたいと思いますexprTrue、 が の場合はゼロexprですFalse。たぶん、このように...

Sum(IIf(([Time Report].Destination) = "D-" & [Time Report].[Baselocation], [amount worked, 0)) AS [Total WorkFromBase in P2]
于 2012-08-09T14:10:36.447 に答える
1

可能性の表を用意して、クエリでそれを参照してみませんか?

 If D-[Time Report].[Baselocation] = 'Base1' IN (SELECT Bases FROM NewTable)

または

 SELECT D-[Time Report].[Baselocation], NewTable.Destination 
 FROM D-[Time Report] 
 INNER JOIN Newtable
 ON D-[Time Report].[Baselocation] = NewTable.Bases 

NewTable には、場所のリストと、そのベース マップ先の場所が含まれています。

LIKE または ALIKE 演算子を使用することもできます。

IIf(D-[Time Report].[Baselocation] LIKE '*Base1*'

参考文献:

基本 Microsoft Jet SQL for Access 2000
中級 Microsoft Jet SQL for Access 2000
上級 Microsoft Jet SQL for Access 2000

于 2012-08-09T12:49:39.597 に答える