4

この状況で値を返すためのすべての式を試しましたが、引数の数が間違っているというエラーが表示され続けます。これが私のクエリです:

SELECT [ER Root].[Network Indicator], 
[ER Root].[Prov Indicator], 
[ER Root].[Pos Indicator], 
[ER].[ER Visit]
FROM [ER Root] LEFT JOIN ER ON ([ER Root].[Network Indicator] = ER.[Network Flag]) AND ([ER Root].[Pos Indicator] = ER.[POS Indicator]) AND ([ER Root].[Prov Indicator] = ER.[Category Indicator]);

私が試してみました:

SELECT [ER Root].[Network Indicator], 
[ER Root].[Prov Indicator], 
[ER Root].[Pos Indicator], 
ISNULL([ER].[ER Visit],0) AS "ER Visit"
FROM [ER Root] LEFT JOIN ER ON ([ER Root].[Network Indicator] = ER.[Network Flag]) AND ([ER Root].[Pos Indicator] = ER.[POS Indicator]) AND ([ER Root].[Prov Indicator] = ER.[Category Indicator

私は何を間違っていますか?

4

2 に答える 2

5

Access のISNULL関数は引数を 1 つだけ受け取り、ブール値を返します。

When is Nullを返したい0場合は、Access セッション内から実行されるクエリで使用できます。[ER Visit]Nz

SELECT Nz([ER Visit], 0) AS ER_Visit

ER_Visitフィールド名をエイリアスとして再利用しようとすると、dbエンジンが「循環」参照について不平を言う可能性があるため、エイリアスとして 使用したことに注意してください。

Access セッションの外部 (従来の ASP や .Net など) からクエリを実行している場合、Nz関数は使用できません。代わりにこれを行うことができます...

SELECT IIf([ER Visit] Is Null, 0, [ER Visit]) AS ER_Visit
于 2013-02-06T02:49:59.777 に答える
3

SQL コードにいくつかのエラーがあります。

  • ISNULLは 2 引数の関数ではなく、単に (バリアント) 値が NULL かどうかを評価し、Boolean値 (TrueまたはFalse) を返します。あなたが探している機能は次のNZとおりです。

Variant が Null の場合、Nz 関数を使用して、ゼロ、長さゼロの文字列 (" ")、または別の指定された値を返すことができます。たとえば、この関数を使用して、Null 値を別の値に変換し、それが式を通じて伝播されないようにすることができます。

クエリの 2 番目の問題は次のとおりです。

  • 人間が読めるファイル名を二重引用符で囲んでいます"。これは許可されていないため、角括弧で囲む必要があります[]

したがって、クエリは次のようになります。

SELECT [ER Root].[Network Indicator], 
[ER Root].[Prov Indicator], 
[ER Root].[Pos Indicator], 
Nz([ER].[ER Visit],0) AS [ER Visit]
FROM [ER Root] 
LEFT JOIN ER ON ([ER Root].[Network Indicator] = ER.[Network Flag]) AND
([ER Root].[Pos Indicator] = ER.[POS Indicator]) AND 
([ER Root].[Prov Indicator] = ER.[Category Indicator]); 

このクエリを Access アプリケーション自体で直接実行するのではなくADOJETDAOODBC、またはその他の外部 Access ドライバーを介して Access データベースを使用する外部アプリケーションで実行する場合は、NZこれらのドライバーではサポートされていないことにも注意してください。 . IIFただし、次のように選択できますER Visit

IIF([ER].[ER Visit] Is Null, 0, [ER].[ER Visit]) AS [ER Visit] 

NZただし、Access で直接試している場合は、関数の使用に問題はないはずです。

乾杯!

于 2013-02-06T02:53:42.473 に答える