2016-05-05 12 views
0

現在、私は出力をフィルタリングしようとしています。割引率が60%以上の製品のみを表示する必要があります。変数割引は形式内のすべてのそれらの値に私はこれが機能しない理由を知らないなどなど、50%、60%PROC SQLエラーでのWHEREの使用

PROC SQL; 
SELECT discount.Product_ID,Product_Name,Start_Date,End_Date,Discount 
FROM Final.discount AS d, Final.product_dim AS p 
WHERE d.Product_ID=p.Product_ID 
AND Discount >= 60%; 
QUIT; 

を示していますが、ログからのエラーは、パーセント記号ありえないが認識していることを私に伝えます?私が望む出力を得るためにこれを修正するにはどうすればよいでしょうか? PERCENTw.dフォーマットは(お使いのディスプレイ与えPERCENT5.そうそう)を適用して変数を仮定

+1

割引とはどんなデータ型ですか?値を50%、60%(50,60などではなく)として保存している場合は、varchar/stringのデータ型ですか? – CoolBots

+0

CoolBotsと同意する...データセットのprocの内容を実行し、変数が何であるかを調べる...文字の場合は'60% 'の文字を引用符で囲むか、数字でフォーマットされた - 60 – SMW

答えて

1

は、あなたがそうのようにそれを記述し、数値である:

PERCENTw.d形式を表示番号

Discount >= 0.6; 
0として、0〜1% - 100%。

変数が文字の場合は、数値を最初に変換する必要があります('100%' > '60%'はfalse)。

input(Discount, PERCENT5.) >= 0.6 

この

はよく the Do Loop上リックWicklinのブログ記事で覆われています。