2015-02-11 54 views
0

與此查詢...需要添加一個條款

SELECT 
    Product, LengthInch, Sum(PieceCount) AS TotPcs, 
    WeekYear, SpecialReq, ControlRoll, 
    CASE WHEN SpecialReq IS NULL THEN 0 ELSE CustNo END CustNum 
FROM 
    RMCutSumData 
GROUP BY 
    Product, LengthInch, WeekYear, SpecialReq, ProdGrade, 
    ControlRoll, 
    CASE WHEN SpecialReq IS NULL THEN 0 ELSE CustNo END 
HAVING 
    Product = 'W14X145' 
    AND ProdGrade = '992' 
    AND WeekYear = 615 
ORDER BY 
    LengthInch 

上述查詢的偉大工程,但我需要補充的是

when SpecialReq IS NULL and CustNo = 1988 then 1988 else CustNo 

我已經試過所有我能想到的和我藍色的臉。

感謝您的任何幫助。

回答

1

我想你想你的Group by case改變也包括你上面

提到的條件嘗試......

SELECT Product 
    ,LengthInch 
    ,Sum(PieceCount) AS TotPcs 
    ,WeekYear 
    ,SpecialReq 
    ,ControlRoll 
    ,CASE 
     WHEN SpecialReq IS NULL AND CUSTNO=1988 
      THEN 1988 
     WHEN SpecialReq IS NULL 
     THEN 0 
     ELSE CustNo 
     END CustNum 
FROM RMCutSumData 
where Product = 'W14X145' 
    AND ProdGrade = '992' 
    AND WeekYear = 615 
GROUP BY Product 
    ,LengthInch 
    ,WeekYear 
    ,SpecialReq 
    ,ProdGrade 
    ,ControlRoll 
    ,CASE 
     WHEN SpecialReq IS NULL AND CUSTNO=1988 
      THEN 1988 
     WHEN SpecialReq IS NULL 
     THEN 0 
     ELSE CustNo 
     END 

ORDER BY LengthInch 

對於基於行的條件下,我寧願用Where代替Having。如果您想對總量應用條件,我建議使用Having