2011-09-09 7 views
0

私はMySQLデータベースに対して正常に動作するクエリを持っていましたが、データベースとアプリケーションをSQL Serverに移行する必要がありました。今、私はこの質問をうまく動作させることができません。用途にSQL Serverデータベースに対してクエリから値をフィルタリングする方法はありますか。

SELECT 
    complist.CompName, 
    complist.CompID, 
    componenttrace.Remark, 
    complist.McID, 
    complist.Station, 
    complist.Slot, 
    complist.Amount - complist.Used - ISNULL(complist.Correction,0) 
FROM 
    complist, componenttrace 
WHERE 
    complist.McID = 1004 
    AND complist.CompID = componenttrace.CompID 
    AND UPPER(complist.Station + '.' + complist.Slot) LIKE '%1.1%' 
ORDER BY 
    complist.CompName, complist.CompID 

指定されたフィールド(すなわち1.1)上の任意の値がある場合、

AND UPPER(complist.Station + '.' + complist.Slot) LIKE '%1.1%' 

を移行部分が自動的に追加されます。

私は、SQL構文の問題を持っていますが、それを解決する方法がわかりません。誰かここに光を当てることはできますか?

おかげで、

グスタボ

+7

正確なエラーメッセージをお試しください!私はSSMSにクエリをコピー/ペーストし、それは私のためにうまく解析します。 –

+0

は 'Station'で、 'Slot'は両方ともvarcharですか? –

+0

@ M.R。実際には、それは問題であり、両方のフィールドはintです。私はCAST(complist.Station AS VARCHAR)とCAST(complist.Slot AS VARCHAR)を追加することでそれを動作させました。 – gtludwig

答えて

-1

エラーメッセージなしでは何が間違っていると言うことは非常に難しいですが、私の賭けは、暗黙結合です。

SELECT 
    complist.CompName, 
    complist.CompID, 
    componenttrace.Remark, 
    complist.McID, 
    complist.Station, 
    complist.Slot, 
    complist.Amount - complist.Used - ISNULL(complist.Correction,0) 
FROM 
    complist 
INNER JOIN componenttrace ON complist.CompID = componenttrace.CompID 
WHERE 
    complist.McID = 1004 
    AND UPPER(complist.Station + '.' + complist.Slot) LIKE '%1.1%' 
ORDER BY 
    complist.CompName, complist.CompID 
+0

CAST(complist.Station AS VARCHAR)とCAST(complist.Slot AS VARCHAR。)を追加して作業しています。 – gtludwig

関連する問題