Получение нескольких столбцов для Group By из CAse-When-Then - PullRequest
0 голосов
/ 29 марта 2012

Я получаю сообщение об ошибке Неверный синтаксис рядом с ',' для этого запроса в строке "когда 3, то kle.Desc, kle.Num".Какой правильный формат ..?

select (case @Type
       when 2 then kle.JNum 
       when 3 then kle.Desc + kle.JNum  
       else kle.LNum end) AS VARCHAR) + @Q + CAST(count(sk.Id) AS VARCHAR) + @Q 
FROM    dbo.SK sk 
INNER JOIN K k  ON K.KITID = SK.KITID
INNER JOIN dbo.MLegend mtl ON k.Type = mtl.MType
INNER JOIN dbo.KLegend kkl ON mtl.KitType = kkl.KitType
INNER JOIN dbo.KExpiry kle on k.ExpiryId= kle.ExpiryId
WHERE SK.SId=Id 
GROUP BY case @Type 
    when 2 then kle.JNum 
    when 3 then kle.Desc, kle.JNum 
    else kle.LNum end, mtl.ktype
ORDER BY mtl.KType

Заранее спасибо.

1 Ответ

1 голос
/ 29 марта 2012

Это запятая в повторяющемся разделе регистра.

select (case @Type
       when 2 then kle.JNum 
       when 3 then kle.Desc + kle.JNum  
       else kle.LNum end) AS VARCHAR) + @Q + CAST(count(sk.Id) AS VARCHAR) + @Q 
FROM    dbo.SK sk 
INNER JOIN K k  ON K.KITID = SK.KITID
INNER JOIN dbo.MLegend mtl ON k.Type = mtl.MType
INNER JOIN dbo.KLegend kkl ON mtl.KitType = kkl.KitType
INNER JOIN dbo.KExpiry kle on k.ExpiryId= kle.ExpiryId
WHERE SK.SId=Id 
GROUP BY case @Type 
    when 2 then kle.JNum 
    when 3 then kle.Desc + kle.JNum 
    else kle.LNum end, mtl.ktype
ORDER BY mtl.KType
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...