2017-04-17 16 views
0

私は、次のように列tblAR.ARIDを取得するためのSQLクエリを追加しようとしていた間、私も得た。このエラーのスタックオーバーフローのいくつかの記事をチェックされています:エラーを解決する方法:変数に値を代入するSELECT文をデータ検索と組み合わせて使用​​しないでください。

SELECT tblAR.ARID, 
@GP = (Sum(ard.Amount)) 
-(Sum((CASE WHEN MaterialNumber='REBATE' THEN [qty] 
      WHEN ard.Amount<0 THEN -1*ABS([qty]) 
      ELSE ABS([qty]) 
     END))) 
FROM 
tblMMMaterials mm 
INNER JOIN tblARDetail ard ON mm.MatID = ard.MatID 
INNER JOIN tblAR arh ON ard.ARID = arh.ARID 
WHERE [email protected] 

私は私がすることはできません知っているようになりました両方のクエリを単一のクエリで実行します。だから、私は次のように2つにクエリを分割:それは私にエラーを与えるものではありませんが、この後のSQLコードは、100%理想的である場合

SELECT 
@GP = (Sum(ard.Amount)) 
-(Sum((CASE WHEN MaterialNumber='REBATE' THEN [qty] 
      WHEN ard.Amount<0 THEN -1*ABS([qty]) 
      ELSE ABS([qty]) 
     END))) 
FROM 
tblMMMaterials mm 
INNER JOIN tblARDetail ard ON mm.MatID = ard.MatID 
INNER JOIN tblAR arh ON ard.ARID = arh.ARID 
WHERE [email protected] 

select tblAR.ARID from tblAR 
WHERE [email protected] 

、私は自信を持っていないです。言い換えれば、2番目のクエリに 'WHERE'条件を含めることが十分であるかどうかを知りたい、つまりWHERE [email protected]です。助けてください

+0

「INNER JOIN」は、これらのテーブルのデータに応じてフィルタリングまたはいくつかの行を掛ける可能性があるため、必ずしも同じではありません。 – Lamak

+0

@Lamak:お返事ありがとうございます。実際には、私は、 '放棄 'に該当するARIDを必要とし、' GP'のためにやっていることすべてを満足させます。私はまた、それらの内部結合を含める必要があるかどうかはわかりません。だから、私は条件を含むだけで終わった。これは私にARIDsの束を与えた – toofaced

答えて

0

JOINがクエリに含まれているので、これらは同じではありません。

関連する問題