2015-02-04 3 views
0

Интересно, как я мог выполнить запрос для группировки строк, это пример, чтобы объяснить это лучше.SQL Server Grouping Query

Column1 Column2 Column3 
AD    2 
AD  AD  79 
AD  ES  2 
AD  US  2 

Я хотел бы этот результат:

Column1 Column2  Column3 
AD  AD   79 
AD  NOT EQUAL 6 

Спасибо заранее ... Я пытался с случаем, когда и имея, но какого-либо успеха.

SELECT UPPER(Column1), UPPER(Column2), COUNT(*) FROM MyTable 
    GROUP BY UPPER(Column1), UPPER(Column2) 
    HAVING UPPER(Column1) = UPPER(Column2) 
    ORDER BY UPPER(Column1) ASC 

QUERY

SELECT UPPER(FirstCode), UPPER(SecondCode), COUNT(*) FROM [EducaWorkSpace].[dbo].[tblIPCountry] 
    GROUP BY UPPER(FirstCode), UPPER(SecondCode) 
    ORDER BY UPPER(FirstCode) ASC 


    SELECT P.FirstCode as PaisCodeC, CASE WHEN P.FirstCode<>ISNULL(P.SecondCode, '') THEN 'NOT EQUAL' ELSE P.SecondCode END AS PaisCodeIPC, SUM(Cantidad) as CantidadC 
    FROM 
    (
    SELECT UPPER(FirstCode) FirstCode, UPPER(SecondCode) SecondCode, COUNT(*) Cantidad FROM [dbo].[tblCodes] 
    GROUP BY UPPER(FirstCode), UPPER(SecondCode) 
) P 
    Group BY P.FirstCode, CASE WHEN P.SecondCode<>ISNULL(P.SecondCode, '') THEN 'Not Equal' ELSE P.SecondCode END 
+0

Поделитесь, что вы попробовали и мы можем помочь улучшить его. – WeSt

ответ

3

Вот, попробуйте это:

SELECT Column1, 
    CASE WHEN Column1<>ISNULL(Column2, '') 
    THEN 'Not Equal' 
    ELSE Column2 END AS Column2, 
    SUM(Column3) 
FROM MyTable 
GROUP BY Column1, 
    CASE WHEN Column1<>ISNULL(Column2, '') 
    THEN 'Not Equal' 
    ELSE Column2 END 
+0

Позвольте мне проверить это, :) Я тоже работаю над этим, но просто не могу сделать столбец SUM3, когда Column1 и column2 являются разными. ... :( – user2112420

+0

@ user2112420 - см. Мое редактирование –

+0

Извините, но не работает: ( – user2112420