2016-08-01 11 views
1

購入請求書テーブルに対して簡単なクエリを実行して、サプライヤ請求書のサブセットの値を合計する必要があります。通常、これは次の疑似クエリの単純なケースです。SQL Server:where句を事前宣言リストの特定の値に制限することは可能です

Select Sum(invoiceTotal) 
From PurchaseInvoices 
Where ContactId = x 

私が持っている問題は、それは、レコードIドンに引くよう句がBetween x and yを言ってどこ私は単純に修正することはできませんので、私は後だ、特定の取引先がランダムに連絡先テーブル全体に分散されていることです欲しい。

議論のために、私は連絡先a、b、c、g、j、k、sの値を合計する必要がありますが、uはSQLクエリの始めに連絡先のリストを定義する方法です単純にwhere句をContactIdに制限してください。

おかげ

答えて

2

あなたはリストを返し、リストまたはサブクエリを提供するために、IN句を使用することができます。構文

test_expression [ NOT ] IN 
(subquery | expression [ ,...n ] 
) 
+0

Select Sum(invoiceTotal) From PurchaseInvoices Where ContactId in (x, y, z) 

は疑いの余地なく明白なの私を思い出させてくれてありがとう。私は明らかにあまりにも疲れている。システムが私に許してくれたら数分で正しいとマークします。 –

+0

あなたは歓迎です。 – Adil

+0

これはパラメータ化してストアドプロシージャで使用することができます(言い換えれば、Where句のIN部分で参照される整数のリストを渡す)ことができますか? –

関連する問題