2016-09-09 16 views
-4

私はクエリを作成し、その中にいくつかの計算を行っています。今私は、計算された列のいくつかの計算を行う必要があります。SQLパーセンテージと計算

dbo.SI.frozqty-dbo.SI.countqty AS VARCOUNT 

は今、私は

VARCOUNT/dbo.SI.frozqty 

の割合をうまくする必要がありますが、私はVARCOUNT

を認識しません。また0エラーによってその除算を削除して、それを取得する必要があります新しい列での計算を使用して

どのようなアイデアですか?

ありがとうございます。

+0

兄弟列の値をそのエイリアスで取得することはできません。これが表示されているものよりも少し複雑なストアドプロシージャの一部である場合は、宣言されたパラメータを使用して値を格納できます。それ以外の場合は、単にSELECT dbo.SI.frozqty-dbo.SI.countqtyをVARCOUNT、(dbo.SI.frozqty-dbo.SI.countqty)/ dbo.SI.frozqty AS CalculatedValue' – Santi

答えて

0

サブクエリまたはCTEを使用できます。サブクエリまたはCTEで第1レベルの計算を行い、メインクエリで第2レベルの計算を行うためにそれを使用します。

0

この質問に対する通常の答えは、サブクエリまたはCTEを使用することです。これらは有効です。両方の引数が整数である場合、SQL Serverは、整数の除算を行うこと

select x.varcount/si.frozqty 
from . . . outer apply 
    (select dbo.SI.frozqty-dbo.SI.countqty AS VARCOUNT) x 

注:別の方法は、横方向にはSQL ServerでOUTER APPLYまたはCROSS APPLYを綴られており、参加を使用することです。これは、除算の結果であるOUTER APPLYの構文には影響しません。

関連する問題