none
Melhorar performance RRS feed

  • Pergunta

  • Ajuda para melhorar consulta... a tabela com os dados originais é igual essa ai abaixo

    Esses são os dados originais

    quarta-feira, 30 de janeiro de 2019 19:56

Respostas

  • Boa noite,

    Douglas, não sei se vai melhorar mas segue uma sugestão para testes:

    SELECT
        CA.PONTO_SERVICO_AGUA,
        CA.TOTAL_SITUACAO_PSA
    FROM MXL01..WFM_CLIENTE w
    cross apply
    (
        select 
            w.PONTO_SERVICO_AGUA_1 AS PONTO_SERVICO_AGUA, 
            w.TOTAL_SITUACAO_PSA_1 AS TOTAL_SITUACAO_PSA
        WHERE 
            w.PONTO_SERVICO_AGUA_1 IS NOT NULL
    
        UNION
    
        select 
            w.PONTO_SERVICO_AGUA_2, 
            w.TOTAL_SITUACAO_PSA_2
        WHERE 
            w.PONTO_SERVICO_AGUA_2 IS NOT NULL
    
        UNION
    
        select 
            w.PONTO_SERVICO_AGUA_3, 
            w.TOTAL_SITUACAO_PSA_3
        WHERE 
            w.PONTO_SERVICO_AGUA_3 IS NOT NULL
    
        UNION
    
        select 
            w.PONTO_SERVICO_AGUA_4, 
            w.TOTAL_SITUACAO_PSA_4 
        WHERE 
            w.PONTO_SERVICO_AGUA_4 IS NOT NULL
    ) ca
    WHERE
        w.ID_CLIENTE = 221311

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Ddev13 quinta-feira, 31 de janeiro de 2019 10:30
    quinta-feira, 31 de janeiro de 2019 01:40
  • Deleted
    • Marcado como Resposta Ddev13 quinta-feira, 31 de janeiro de 2019 10:30
    quarta-feira, 30 de janeiro de 2019 23:50

Todas as Respostas

  • e hoje eu retorno os dados dessa forma

    Gostaria de saber se tem outra forma melhor de fazer isso

    quarta-feira, 30 de janeiro de 2019 19:57
  • Deleted
    • Marcado como Resposta Ddev13 quinta-feira, 31 de janeiro de 2019 10:30
    quarta-feira, 30 de janeiro de 2019 23:50
  • Boa noite,

    Douglas, não sei se vai melhorar mas segue uma sugestão para testes:

    SELECT
        CA.PONTO_SERVICO_AGUA,
        CA.TOTAL_SITUACAO_PSA
    FROM MXL01..WFM_CLIENTE w
    cross apply
    (
        select 
            w.PONTO_SERVICO_AGUA_1 AS PONTO_SERVICO_AGUA, 
            w.TOTAL_SITUACAO_PSA_1 AS TOTAL_SITUACAO_PSA
        WHERE 
            w.PONTO_SERVICO_AGUA_1 IS NOT NULL
    
        UNION
    
        select 
            w.PONTO_SERVICO_AGUA_2, 
            w.TOTAL_SITUACAO_PSA_2
        WHERE 
            w.PONTO_SERVICO_AGUA_2 IS NOT NULL
    
        UNION
    
        select 
            w.PONTO_SERVICO_AGUA_3, 
            w.TOTAL_SITUACAO_PSA_3
        WHERE 
            w.PONTO_SERVICO_AGUA_3 IS NOT NULL
    
        UNION
    
        select 
            w.PONTO_SERVICO_AGUA_4, 
            w.TOTAL_SITUACAO_PSA_4 
        WHERE 
            w.PONTO_SERVICO_AGUA_4 IS NOT NULL
    ) ca
    WHERE
        w.ID_CLIENTE = 221311

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    • Marcado como Resposta Ddev13 quinta-feira, 31 de janeiro de 2019 10:30
    quinta-feira, 31 de janeiro de 2019 01:40
  • José, valeu vou usar a sua solução, o pessoal aqui não gosta muito de usar union o DBA  fala que union perde performance
    quinta-feira, 31 de janeiro de 2019 10:32
  • Gapimex, obrigado, a sua solução usa union igual a minha e o pessoal aqui não curti muito isso não, embora pra mim não muda muita coisa
    quinta-feira, 31 de janeiro de 2019 10:33
  • Deleted
    quinta-feira, 31 de janeiro de 2019 10:50