2016-10-20 18 views
0

領域の郵便番号ごとにクエリを実行しようとしました。たとえば、 郵便番号がn個あります。それぞれのクエリを実行して、私は変数と選択肢でそれをしようとするが、このエラーが来ると、私は毎回郵便番号を変更して実行することができますが、約300郵便番号ですので、それ。メッセージ512、レベル16、状態1、行3サブクエリが1より大きい値を返しました

これは私がZIP1 @の値に応じて、私のクエリを実行し、そのエラーに私がselect句

手がかりを実行するたびに与える私のクエリの一部

----Declare Variable 

Declare @Zip1 as int 

Declare @Zip2 as Int 

Declare @DistanceMax as numeric 

Declare @DistanceMin as Numeric 

set @Zip1 = (select distinct(zip_code) from zipcode 
Where zip_code <>' ') 

[email protected]='85001'---If I do this way I have to run for every zipcode 

のですか?

+1

メッセージは非常に明確である 仮定zip_codeのデータ型はnvarcharです。サブクエリは複数の行を返します。 –

+1

あなたは '@ Zip1'のための単一の値を得ていませんが、SQL-Serverはただ一つの行を求めています。 – Nebi

+0

はい、私はすべての郵便番号のために実行する必要があり、私は手動でそれをしたくないですか? – Luis64

答えて

0

コメントで述べたように: @ Zip1の値は1つではありませんが、SQL Serverでは1行しか必要ありません。

解決策は、@Zip1はintではなく表です。

DECLARE @Zip1 TABLE 
( 
zipid NVARCHAR(10) 
) 

INSERT INTO @Zip1 
    SELECT distinct zip_code from zipcode 
    Where zip_code <>' ' 

あなただけの、他の表のようにZIP1 @呼び出すことができます:

SELECT zipid FROM @Zip1 
+0

がクエリで機能しませんでした – Luis64

+0

メッセージ137、レベル16、状態1、行59 スカラー変数 "@ Zip1"を宣言する必要があります。 – Luis64

+0

Nebi、その作品ありがとう... :) – Luis64

関連する問題