2017-10-12 10 views
-3

誰も私がこの方程式を解くのを助けることができますか? "Lost_Weight"は計算フィールドです。私は、renWeightが0の場合、HWeight - renWeight = '0'の結果を得ようとしています。where節には、チャレンジを実行する論争の声明があります。下記参照。SQLは計算で0を避ける

SELECT  TOP (100) PERCENT dbo.Name.ID, 
         dbo.Name.CO_ID, 
         dbo.Name.FULL_NAME, 
         dbo.Name.STATE_PROVINCE, dbo.Tops_Profile.START_WGHT, 
         dbo.Tops_Profile.RENEWAL_WEIGHT, 
         dbo.Tops_Profile.H_WEIGHT - dbo.Tops_Profile.RENEWAL_WEIGHT AS Lost_Weight, 
         dbo.Tops_Profile.H_WEIGHT, 
         dbo.Name.JOIN_DATE, 
         dbo.Name.BIRTH_DATE, 
         RIGHT(dbo.TOPS_AWARDS.AWARD_TYPE, 15) AS AWARDS_TYPE, 
         dbo.TOPS_AWARDS.AWARD_CATEGORY, 
         dbo.TOPS_AWARDS.AWARD_DATE, 
         dbo.vw_RegDirs.TARGET_ID AS 
         RD_ID, 
         dbo.vw_Coords.TARGET_ID AS Coord_ID, 
         dbo.vw_Coords.FULL_NAME AS 
         Coord_Name, 
         dbo.vw_AreaCapts.TARGET_ID AS AC_ID, dbo.Name.STATUS 
FROM   dbo.Name INNER JOIN dbo.Tops_Profile 
    ON dbo.Name.ID = dbo.Tops_Profile.ID 
INNER JOIN dbo.vw_RegDirs 
         ON dbo.Name.CO_ID = dbo.vw_RegDirs.CHAPTER 
INNER JOIN dbo.vw_Coords 
        ON dbo.Name.CO_ID = dbo.vw_Coords.CHAPTER 
INNER JOIN dbo.vw_AreaCapts 
     ON dbo.Name.CO_ID = dbo.vw_AreaCapts.CHAPTER 
LEFT OUTER JOIN dbo.TOPS_AWARDS 
    ON dbo.Name.ID = dbo.TOPS_AWARDS.ID 
WHERE  (dbo.Tops_Profile.RENEWAL_WEIGHT <> '0') 
      AND (dbo.Name.STATUS = 'a') 
     AND (dbo.Tops_Profile.H_WEIGHT - dbo.Tops_Profile.RENEWAL_WEIGHT >= 100') 
    OR (dbo.Name.STATUS = 'a') AND (dbo.TOPS_AWARDS.AWARD_TYPE LIKE '%Century%') 

今renewal_weightが0である場合には、自動的にLost_WeightフィールドにH_WEIGHTから私に番号を与え、RENEWAL_WEIGHT私は0を推測している0

+0

dbo.Tops_Profile.H_WEIGHT - dbo.Tops_Profile.RENEWAL_WEIGHT AS Lost_Weight 

を交換CASEを用いて固定することができます。また、テーブルのスキーマを与えて背景を理解する –

+0

なぜ計算をテキストと比較していますか? 'H_Weight'と' Renewal_Weight'のデータ型は何ですか? –

+0

番データ型は 'float' – Messi

答えて

1

ある場合、私は0に結果を必要としますこの状況では特別な価値があります。これは

は全体のSQL文を教えてください

CASE WHEN RENEWAL_WEIGHT = 0 THEN 0 
    ELSE dbo.Tops_Profile.H_WEIGHT - dbo.Tops_Profile.RENEWAL_WEIGHT 
END AS Lost_Weight 
関連する問題