2015-02-11 2 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, если вы хотите применить условия к агрегатам.