2017-04-11 18 views
0

企業に4500人以上の従業員がいる場合、クエリの使用を停止するようにSQLクエリを設定します。しかし、ATM、私はその4500の下で、(価格は 45 $ /従業員である)ときENDあまりにも多くはあり更新クエリのSQL。

{CASE WHEN ([company].[nremployees]* 45) <4500 
THEN 4500 
ELSE 
CASE WHEN ([company].[nremployees]* 45) > 4500 THEN 
[company].[pricespecial] else 
0 END END else [company].[servicebill] end} 
+0

今Imは唯一正しい値(4500)を取得してみたときにその100 empoyess –

+2

角括弧内のデータベース、テーブル名とカラム名を囲む下( '[会社]。[nremployees]') MySQLではなく、SQL Server構文です。 MySQLはこの目的のためにバッククォート( '\' company \ '。\' nremployees \ '')を使います。 [SQL Server](https://docs.microsoft.com/en-us/sql/t-sql/language-reference)および[MySQL](https://dev.mysql.com/doc/refman/5.7/) en /)は、異なる企業によって作成された、無関係の異なるソフトウェア製品です。正しいタグを使用してください。 – axiac

答えて

2

右の値を取得いけない、とあなたはそれを過度に複雑されています。簡易版

CASE 
    WHEN [company].[nremployees] < 100 THEN 4500 
    WHEN [company].[nremployees] > 100 THEN [company].[pricespecial] 
    ELSE [company].[servicebill] /* or 0, can't understand from your query */ 
END 
+0

それは今作動する!これは初めての質問です。早急な返信をありがとうございます。 –

+0

うれしかった!これまたは任意の回答があなたの質問を解決した場合は、チェックマークをクリックして[受諾](http://meta.stackexchange.com/q/5234/179419)を検討してください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。 –