Adicionar uma coluna derivada de uma função CASE a uma coluna normal da tabela

user11505088

Estou tentando adicionar a saída de uma coluna derivada de uma instrução CASE ([Gift Aid Total] a uma coluna da tabela padrão (bd.pagamento). Neste caso, a coluna derivada é igual a um valor monetário e eu quero adicioná-la a outro valor monetário em uma tabela.

Tentei o código SQL padrão (veja abaixo) para adicionar as duas colunas juntas.

select co.contacttype, co.firstname+' '+co.keyname [Name], bd.incometype, bd.paymentamount, 

CASE WHEN (gd.GADstatus)='Active' THEN bd.paymentamount*0.25 
ELSE '0'
END AS [GAT],

[GAT]+bd.paymentamount,

bd.dateofpayment [Payment Date]

from contact co
left join batchdetail bd on co.serialnumber=bd.serialnumber
left join GIFTAID_CURRENTDECLARATION AS gd ON bd.SERIALNUMBER=gd.SERIALNUMBER
where bd.DATEOFPAYMENT BETWEEN '2016-09-01' AND '2019-08-31' 

Quando tento adicionar essas duas colunas, recebo uma mensagem de erro dizendo Nome de coluna inválido 'GAT'.

Gostaria que o código somasse as duas colunas e mostrasse o total em uma nova terceira coluna.

Gordon Linoff

Instruções SQL não pode se referir a um alias definido no SELECTna mesma consulta de SELECT, FROMou WHEREcláusulas (e outros, dependendo do banco de dados). Pois o SELECTmotivo é simples: o SQL não garante a ordem de avaliação das expressões.

Isso costumava ser resolvido usando CTEs ou subconsultas. Meu método preferido é uma junção lateral. A sintaxe depende do banco de dados. No SQL Server, é assim:

select co.contacttype, (co.firstname + ' ' + co.keyname) as [Name],
       bd.incometype, bd.paymentamount, v.gat,
       v.gat + bd.paymentamount,
       bd.dateofpayment as [Payment Date]
from contact co left join
     batchdetail bd
     on co.serialnumber = bd.serialnumber left join
     GIFTAID_CURRENTDECLARATION gd
     on bd.SERIALNUMBER = gd.SERIALNUMBER cross apply
     (values (CASE WHEN gd.GADstatus ='Active' THEN bd.paymentamount * 0.25 
ELSE 0 END)
     ) v(gat)
where bd.DATEOFPAYMENT BETWEEN '2016-09-01' AND '2019-08-31' 

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Adicionar classificação personalizada para uma coluna na coluna da tabela de visualização do Google

Problemas ao usar uma coluna de uma tabela derivada

JQuery - como adicionar um botão a uma coluna da tabela

Transformar uma coluna da tabela usando uma função

Preencher uma coluna da tabela com cada elemento de uma lista usando uma função def

Adicionar coluna de uma tabela a outra

Adicionar coluna em uma tabela

Como posso filtrar uma coluna derivada da função de janela

Como adicionar restrição de verificação em uma coluna da tabela?

Como adicionar uma coluna a uma tabela com valores de outra coluna de uma tabela diferente

Como você pode adicionar uma explicação à coluna brilhante da tabela de dados?

Calcule uma coluna derivada

Atualize o valor da coluna com a soma de uma coluna de registros de uma tabela diferente

Como adicionar uma coluna de hiperlink a uma tabela usando jquery?

Como adicionar uma coluna a uma tabela SQL que é uma multiplicação de duas outras colunas?

adicione o valor da coluna de uma linha de uma tabela e exiba a outra coluna

Adicionar uma nova coluna à tabela existente em uma migração

Como faço para adicionar uma coluna em uma tabela?

Como adicionar uma linha vertical ao cabeçalho da primeira coluna em uma tabela de dados?

Validar uma coluna da tabela

Definir propriedade da coluna para uma coluna em uma tabela de revisão

Subtraia a soma de uma coluna da coluna de outra tabela

Obtenha o nome da tabela / entidade de uma coluna

Incapaz de substituir o valor em uma coluna da tabela

obter o total de uma coluna da tabela carregada dinamicamente

Como obter uma coluna derivada da união no valor inserido?

Como usar o SQL para adicionar uma coluna de dados a uma tabela de resultados, que é baseada em uma referência lógica dentro da mesma tabela?

Atualize uma coluna particular de outra coluna da tabela no mysql

SQL Adicionando uma coluna a uma tabela, com instrução case

TOP lista

  1. 1

    Obtendo apenas o número de uma String C #

  2. 2

    como acessar a conexão do banco de dados em visualizações no codeigniter 4

  3. 3

    Como redimensionar tabelas geradas pelo Stargazer no R Markdown?

  4. 4

    recuperar valores em uma linha de dataframes com base no valor em outro

  5. 5

    Firebase Storage Web: como fazer upload de um arquivo

  6. 6

    为什么在使用argc和argv时不会出现分段错误?

  7. 7

    Como agrupar objetos em uma lista em outras listas por atributo usando streams e Java 8?

  8. 8

    Qual é a diferença entre o tamanho do passo e a taxa de aprendizado no aprendizado de máquina?

  9. 9

    Por que definir a variável como uma string vazia não é necessária em meu código?

  10. 10

    Insert a value to hidden input Laravel Blade

  11. 11

    Configure o coletor de arquivos Serilog para usar um arquivo de log por execução do aplicativo

  12. 12

    Como ler arquivos yaml em laravel?

  13. 13

    Série Fibonacci usando programação dinâmica

  14. 14

    Como adicionar elementos a um array multidimensional em PHP?

  15. 15

    How do I set an IronPython ctypes c_char_p pointer to an absolute address that is not a valid memory address to read from?

  16. 16

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  17. 17

    Como faço para que um formulário no Access se torne uma janela pop-up?

  18. 18

    Como anexar um arquivo a um e-mail usando JavaMail

  19. 19

    Adicionar campos de texto dinâmicos por meio da seleção suspensa de componentes?

  20. 20

    如何使用SOM算法进行分类预测

  21. 21

    TypeError não capturado: não é possível atribuir a propriedade somente leitura

quentelabel

Arquivo