2017-07-19 7 views
0

私は、次の表があるとします。単語が特定の文字が含まれている場合新しいカラム上の条件でカラムの値を合計

Letter Item1 Item2 
'a'  2  3 
'b'  3  5 
'c'  6  7 

は、どのように私は私が合格した単語のための項目のクエリを返す合計を書き込むことができますか?例:

Word Sum 
'ab' 13 
'abc' 26 
'bc' 21 

編集:クエリでいくつかの単語を渡す必要があります。

+0

なぜあなたは 'ca'または' ac'を考慮していないでしょうか? –

+0

@VijaykumarHadalgiこれは単なる例です。 – salamanca

答えて

0

は考えてみましょう:

SELECT [enter word] AS Word, Sum(IIf(InStr([enter word],[Letter])>0,[Item1]+[Item2],0)) AS LtrSum FROM Table1 GROUP BY [enter word];

または

SELECT DISTINCT [enter word1] AS W1, Sum(IIf(InStr([enter word1],[Letter])>0,[Item1]+[Item2],0)) AS C1, [enter word2] AS W2, Sum(IIf(InStr([enter word2],[Letter])>0,[Item1]+[Item2],0)) AS C2, [enter word3] AS W3, Sum(IIf(InStr([enter word3],[Letter])>0,[Item1]+[Item2],0)) AS C3 FROM Table1 GROUP BY [enter word1], [enter word2], [enter word3];

または

SELECT DISTINCT [enter word1] AS W1, DSum("Item1","Table1","InStr('" & [enter word1] & "', [Letter])>0")+DSum("Item2","Table1","InStr('" & [enter word1] & "', [Letter])>0") AS C1, [enter word2] AS W2, DSum("Item1","Table1","InStr('" & [enter word2] & "', [Letter])>0")+DSum("Item2","Table1","InStr('" & [enter word2] & "', [Letter])>0") AS C2, [enter word3] AS W3, DSum("Item1","Table1","InStr('" & [enter word3] & "', [Letter])>0")+DSum("Item2","Table1","InStr('" & [enter word3] & "', [Letter])>0") AS C3 FROM Table1;

または

SELECT Table2.Word, Sum(IIf(InStr([Word],[Letter])>0,[Item1]+[Item2],0)) AS LtrSum FROM Table2, Table1 GROUP BY Table2.Word;

+0

ありがとうございます。しかし、質問に5単語を渡す必要があり、別のテーブルに格納されていない場合はどうすればよいですか? – salamanca

+0

改訂版の回答を参照 – June7

0

あなたはただ単にCHARINDEXを使用することができます。

SELECT SUM(Item1) + SUM(Item2) 
FROM TABLE_NAME WHERE CHARINDEX(Letter, ENTER_WORD) > 0 
+0

CharIndexはAccessクエリでは認識されない関数です。 – June7

関連する問題