0

1 つの正当なセルの行ごとにチェックする必要があるn MS Access フィールドがあります。正当なセルには、単に「欠落」、「不明」という値がありません。または空白ではありません。これらのセルはすべて、有効な値を持つセルのみを含む 1 つのフィールドに結合されます。

以下の表を参照すると、

集会

Name_FinalName_2010には、 、Name_2011およびからのこれらの正当なセルが含まれますName_2012

仕事をするのに役立つ2つの別々のクエリがすでにありますが、Name_Finalフィールドを取得するにはそれらの結果を組み合わせる必要があります。

  1. null 以外または空でないセルを返すクエリ

     SELECT 
         Nz(Name_2010, '') & 
         Nz(Name_2011, '') & 
         Nz(Name_2012, '') 
         AS Name_Final
    

結果は次のとおりです。

coven-query-1

  1. 望ましくない値を持つセルをフィルタリングする

     SELECT 
         Name_2010 Not In ('missing', 'unknown', 'Blank(s)', ' ', Nz), 
         Name_2011 Not In ('missing', 'unknown', 'Blank(s)', ' ', Nz), 
         Name_2012 Not In ('missing', 'unknown', 'Blank(s)', ' ', Nz) 
         AS Name_Final
         FROM Table1;
    

これは、括弧内に示された値、括弧内に示されていない値、または空白値に対してそれぞれ0-1または空白を返します。NOT INNOT IN

その出力は次のとおりです。

coven-query-2

これらの 2 つのクエリ セットを統合して を作成する方法を見つける必要がありますName_Final

4

1 に答える 1

0
SELECT IIf(Name_2010 In (Null, 'missing', 'unknown', 'Blank(s)', ' '), '', Name_2010) &
   IIf(Name_2011 In (Null, 'missing', 'unknown', 'Blank(s)', ' '), '', Name_2011) &
   IIf(Name_2012 In (Null, 'missing', 'unknown', 'Blank(s)', ' '), '', Name_2012) 
   AS Name_Final
FROM Table1;

そうは言っても、データをクリーンアップして、すべての「欠落」、「不明」、または「空白」の値を NULL に置き換える傾向があります。これにより、IIf を単純な Nz に置き換えることができます -

UPDATE Table1 SET Name_2010 = Null WHERE Trim(Name_2010) In ('missing', 'unknown', 'Blank(s)', '');
UPDATE Table1 SET Name_2011 = Null WHERE Trim(Name_2011) In ('missing', 'unknown', 'Blank(s)', '');
UPDATE Table1 SET Name_2012 = Null WHERE Trim(Name_2012) In ('missing', 'unknown', 'Blank(s)', '');
于 2013-10-12T11:52:04.367 に答える