2014-06-06 160 views
0
SELECT  "OrdDet"."DetID",      
       "OrdDet"."ServQty",    
       "OItem"."PlanID",    
    CASE  "OrdDet"."resourceID"   
    WHEN  100522 THEN 1024    
    WHEN  100488 THEN 50     
    END   "ResourceAmount"    
    FROM  "OrdDet"      
    JOIN  "Subscription" USING ("subscrip 
    JOIN  "PlanRate" USING ("PlanID")           
    AND   "Subscription"."PlanID" = "Plan 
    WHERE  "OrdDet"."resourceID" IN (10048 
    AND   "Subscription"."PlanID" <= 265 
    AND   "Subscription"."PlanID" >= 260 
    AND   "PlanRate"."resourceID" = 10001 
    AND   "OItem"."Status" = 40   
    AND   "OIType" IN (60, 80)   
    AND   "SubscrParam"."IncludedValue" != "PlanRate"."includedValue" 
    + ("OrdDet"."ServQty" * "OrdDet"."resourceID")   
    ORDER BY "OrdDet"."subscriptionID"  

“”“)CASE语句的WHERE

我需要能够有‘OrdDet’。” RESOURCEID” 1024或50上做这行的代码

我的计算时
AND "SubscrParam"."IncludedValue" != "PlanRate"."includedValue" 
+ ("OrdDet"."ServQty" * "OrdDet"."resourceID") 

在它只是利用此刻100522或100488.另外,当我使用“ResourceAmount”而不是“OrdDet”。“RESOURCEID”不承认“ResourceAmount”反正有我可以包括从我的计算中的情况改变了1024或50的值在哪里?

+0

什么样的关系数据库是在此之后? '''的使用看起来很尴尬 – DrCopyPaste

+0

这是一个关系数据库,只需要引号。 –

+1

行,但从哪个供应商和版本?:)请修复您的代码,它有几条未完成的行... – Pred

回答

0

也许我现在明白了重读的问题了几次

变化

AND   "SubscrParam"."IncludedValue" != "PlanRate"."includedValue" 
+ ("OrdDet"."ServQty" * "OrdDet"."resourceID") 

AND   "SubscrParam"."IncludedValue" != "PlanRate"."includedValue" 
+ ("OrdDet"."ServQty" * CASE "OrdDet"."resourceID"   
WHEN  100522 THEN 1024    
WHEN  100488 THEN 50     
END)  
+0

是的,这正是需要的,现在完美的工作,非常感谢John –

+0

@ KermitDusack很高兴,修复它。请随时接受这个答案。 –