none
Pivot - String RRS feed

  • Pergunta

  • Amigos,

    Estou com uma dúvida para a querie abaixo, já utilizei Pivot para tabelas com valores númericos e o SUM agrupa os dados de forma adequada, na querie abaixo, todos os campos são string. Que função posso utilizar para obter resultado semelhante ao SUM?

    SELECT object_uuid,

    nome,
    telefone,
    sala,
    bpcpu
    FROM
     (SELECT object_uuid,
      (CASE item_name_id WHEN 259 THEN ISNULL(item_value_text,0) END) AS nome,
      (CASE item_name_id WHEN 262 THEN ISNULL(item_value_text,0) END) AS telefone,
      (CASE item_name_id WHEN 269 THEN ISNULL(item_value_text,0) END) As sala,
      (CASE item_name_id WHEN 258 THEN ISNULL(item_value_text,0) END) AS bpcpu
     FROM ca_itrm.inv_dadoscadastraisiamspe_item) s
    GROUP BY object_uuid,
    nome,
    telefone,
    sala,
    bpcpu

    Abaixo o resultado da querie

    0x0029 NULL NULL NULL NULL
    0x0029 NULL NULL NULL 2614846030
    0x0029 NULL NULL Hemodialise NULL
    0x0029 NULL 8343 NULL NULL
    0x0029 ANDREIA NUNES NULL NULL NULL
    0x0083 NULL NULL NULL NULL
    0x0083 NULL NULL NULL 14842
    0x0083 NULL NULL 1º ANDAR NULL
    0x0083 NULL 5088524 NULL NULL
    0x0083 VAGNER DO CARMO NULL NULL NULL
    0x0233 NULL NULL NULL NULL
    0x0233 NULL NULL NULL 16694
    0x0233 NULL NULL 2 NULL
    0x0233 NULL 50888657 NULL NULL
    0x0233 LUCIANA MENDES NULL NULL NULL

    quarta-feira, 6 de junho de 2012 13:23

Respostas

  • Márcio,

    Certo, então na verdade não era necessário utilizar a função Sum mas sim Max!


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 6 de junho de 2012 14:07
  • Olá Galvão, 

    Isso  mesmo, precisava juntar os valores em uma única linha por grupo. Depois que postei a pergunta, acabei encontrando a solução utilizando a função MAX. Segue abaixo a querie final:

    SELECT object_uuid,

    max(nome) as nome,
    max(telefone) as telefone,
    max(sala) as sala,
    max(bpcpu) as bpcpu
    FROM
     (SELECT object_uuid,
      (CASE item_name_id WHEN 259 THEN ISNULL(item_value_text,0) END) AS nome,
      (CASE item_name_id WHEN 262 THEN ISNULL(item_value_text,0) END) AS telefone,
      (CASE item_name_id WHEN 269 THEN ISNULL(item_value_text,0) END) As sala,
      (CASE item_name_id WHEN 258 THEN ISNULL(item_value_text,0) END) AS bpcpu
     FROM ca_itrm.inv_dadoscadastraisiamspe_item) s
    GROUP BY object_uuid

    Muito obrigado pela atenção.

    Abraço.

    quarta-feira, 6 de junho de 2012 13:43

Todas as Respostas

  • Márcio,

    Vamos lá, você deseja fazer SUM de valores que estão acumulados em um campo String?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 6 de junho de 2012 13:35
  • Olá Galvão, 

    Isso  mesmo, precisava juntar os valores em uma única linha por grupo. Depois que postei a pergunta, acabei encontrando a solução utilizando a função MAX. Segue abaixo a querie final:

    SELECT object_uuid,

    max(nome) as nome,
    max(telefone) as telefone,
    max(sala) as sala,
    max(bpcpu) as bpcpu
    FROM
     (SELECT object_uuid,
      (CASE item_name_id WHEN 259 THEN ISNULL(item_value_text,0) END) AS nome,
      (CASE item_name_id WHEN 262 THEN ISNULL(item_value_text,0) END) AS telefone,
      (CASE item_name_id WHEN 269 THEN ISNULL(item_value_text,0) END) As sala,
      (CASE item_name_id WHEN 258 THEN ISNULL(item_value_text,0) END) AS bpcpu
     FROM ca_itrm.inv_dadoscadastraisiamspe_item) s
    GROUP BY object_uuid

    Muito obrigado pela atenção.

    Abraço.

    quarta-feira, 6 de junho de 2012 13:43
  • Márcio,

    Certo, então na verdade não era necessário utilizar a função Sum mas sim Max!


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]

    quarta-feira, 6 de junho de 2012 14:07